标签: keyboard-maestro

如何通过终端获取最新文件的名称?

我正在尝试为OS X的Keyboard Maestro创建一个宏,执行以下操作:

  1. 根据创建的日期获取磁盘上目录中最新文件的名称;
  2. 粘贴文本"最新文件:"加上最新文件的名称.

其中一个选项是"执行一个shell脚本",所以我认为这样做是为了1.在谷歌搜索了一下后我想出了这个:

cd /path/to/directory/
ls -t | head -n1
Run Code Online (Sandbox Code Playgroud)

这会对它进行排序,并返回第一个文件名.但是,它似乎也包括换行符,我不想要.至于2:我可以在应用程序中输出带有不同操作的文本"最新文件:",并将文件名粘贴到其后面.但我想知道你是否不能返回"随机文本"+ ls命令的结果.

所以我的问题是:我只能使用ls命令吗?而且我怎么只是最新的文件的名称,没有任何换行或退货?

shell command-line keyboard-maestro

7
推荐指数
1
解决办法
3万
查看次数

TIS/TSM非主线程错误; 热键触发的pygame脚本(臀部,pygame,键盘)

我正在编写一个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)

python macos keyboard-shortcuts hotkeys keyboard-maestro

6
推荐指数
1
解决办法
1531
查看次数

如何在 Keyboard Maestro 中模拟按住按键?

使用 Keyboard Maestro 5,我希望能够为我的宏之一模拟按住特定键特定的时间。我不确定目前这是否可行,而且我还没有找到解决方法。任何有关如何完成此操作的帮助将不胜感激。

keyboard keyboard-shortcuts keystroke keyboard-maestro

5
推荐指数
1
解决办法
1494
查看次数

识别没有 ID 值的 DOM 元素

我经常使用 Invisalign\xc2\xae 的网络应用程序来设置正畸病例。我使用 Keyboard Maestro 通过激活 JavaScript 在应用程序中创建键盘快捷键。

\n

键盘大师触发的 JavaScript 示例:

\n
document.getElementById('myButton').click();\n
Run Code Online (Sandbox Code Playgroud)\n

网络应用程序最近已更新,不再有按钮 ID。因此,getElementByID 不再起作用。

\n

我已经尝试过以下方法,但它不起作用:

\n
document.getElementByClass('myClass').click();\n
Run 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>\n
Run Code Online (Sandbox Code Playgroud)\n

我也尝试过:

\n
document.getElementBydata-qa-name('lower').click();\n
Run Code Online (Sandbox Code Playgroud)\n

这也是行不通的。希望有人可以帮助提供一个非常简单的解决方案。虽然我了解一些 HTML 和 CSS,但我对 JavaScript 几乎一无所知。

\n

html javascript keyboard-shortcuts keyboard-maestro

5
推荐指数
2
解决办法
1209
查看次数

将 KeyboardMaestro 的变量传递给 Python 脚本

我需要创建一个具有一些值的变量,并将该值提供给 python 脚本一个 liner ( python -c "...") 以处理该变量,并将其恢复为相同或其他变量。

如何使用 Keyboard Maestro 做到这一点?

python keyboard-maestro

1
推荐指数
1
解决办法
963
查看次数