我正在尝试为OS X的Keyboard Maestro创建一个宏,执行以下操作:
其中一个选项是"执行一个shell脚本",所以我认为这样做是为了1.在谷歌搜索了一下后我想出了这个:
cd /path/to/directory/
ls -t | head -n1Run Code Online (Sandbox Code Playgroud)
这会对它进行排序,并返回第一个文件名.但是,它似乎也包括换行符,我不想要.至于2:我可以在应用程序中输出带有不同操作的文本"最新文件:",并将文件名粘贴到其后面.但我想知道你是否不能返回"随机文本"+ ls命令的结果.
所以我的问题是:我只能使用ls命令吗?而且我怎么只是最新的文件的名称,没有任何换行或退货?
我正在编写一个python应用程序,其主要目的是运行一个迷你游戏(使用'pygame'库),每当我使用一个热键(目前使用'键盘'库).我希望这个热键被普遍认可,所以我将整个东西打包为状态栏应用程序(使用'rumps'库).
到目前为止,我可以启动整个事情,从状态栏下拉列表选择播放,它的工作原理!大.
但是,如果我尝试使用绑定的热键,运行Play触发器的相同功能,我得到:
python[58226:599749] pid(58226)/euid(0) is calling TIS/TSM in non-main thread
environment, ERROR : This is NOT allowed. Please call TIS/TSM in main thread!!!
Run Code Online (Sandbox Code Playgroud)
这显示了四次,并且是后续的
python[58226:599749] WARNING: nextEventMatchingMask should only be
called from the Main Thread! This will throw an exception in the future.
Run Code Online (Sandbox Code Playgroud)
为了检查它本身不是热键,我做了一个测试:如果我将热键连接到一个更简单的功能,比如设置一个警报,它工作正常.它仍然抱怨,并给我错误:
python[60308:620099] -[NSAlert runModal] may only be invoked from the main thread. Behavior on other threads is undefined. (
0   AppKit                              0x00007fff2b7f563f -[NSAlert runModal] + 178
1   _objc.cpython-36m-darwin.so         0x000000010c1358c7 ffi_call_unix64 + 79
2   ??? …Run Code Online (Sandbox Code Playgroud) 使用 Keyboard Maestro 5,我希望能够为我的宏之一模拟按住特定键特定的时间。我不确定目前这是否可行,而且我还没有找到解决方法。任何有关如何完成此操作的帮助将不胜感激。
我经常使用 Invisalign\xc2\xae 的网络应用程序来设置正畸病例。我使用 Keyboard Maestro 通过激活 JavaScript 在应用程序中创建键盘快捷键。
\n键盘大师触发的 JavaScript 示例:
\ndocument.getElementById('myButton').click();\nRun Code Online (Sandbox Code Playgroud)\n网络应用程序最近已更新,不再有按钮 ID。因此,getElementByID 不再起作用。
\n我已经尝试过以下方法,但它不起作用:
\ndocument.getElementByClass('myClass').click();\nRun Code Online (Sandbox Code Playgroud)\n(我尝试过c01143和c0012)
\n该页面的 HTML 示例如下:
\n<div class='c0012'>\n        <button type="button" tabindex="-1" data-qa-name="lower" data-qa-toggled="false" class="c0180 c01149 c01151">\n            <div class="c01143">\n                <svg class="c0189 c0191" viewBox="0 0 24 24"><path d="M2,13 L22,13 L22,16 L2,16 L2,13 Z M8,8 L16,8 L16,11 L8,11 L8,8 Z"></path></svg>\n            </div>\n        <span class="c01142">Lower</span>\n    </button>\n</div>\nRun Code Online (Sandbox Code Playgroud)\n我也尝试过:
\ndocument.getElementBydata-qa-name('lower').click();\nRun Code Online (Sandbox Code Playgroud)\n这也是行不通的。希望有人可以帮助提供一个非常简单的解决方案。虽然我了解一些 HTML 和 CSS,但我对 JavaScript 几乎一无所知。
\n我需要创建一个具有一些值的变量,并将该值提供给 python 脚本一个 liner ( python -c "...") 以处理该变量,并将其恢复为相同或其他变量。
如何使用 Keyboard Maestro 做到这一点?
python ×2
command-line ×1
hotkeys ×1
html ×1
javascript ×1
keyboard ×1
keystroke ×1
macos ×1
shell ×1