有没有办法使用命令行执行全局热键?

有没有办法使用命令行执行全局热键?

操作系统:OS X 10.9.1 Mavericks

是否可以从命令行执行任何全局热键?

例如,如果我想复制和粘贴,是否有命令可以让我键入精确的热键并执行它?

像这样(此命令仅作为示例,实际上并不存在):

hotkey "ctrl+c"
hotkey "ctrl+v"

我知道已经有一个复制和粘贴“pbpaste”和“pbcopy”的命令,我只是使用复制和粘贴作为示例。

这对于在命令行上执行可能非常冗长的命令非常有用。如果您想在命令行上锁定计算机,您必须执行以下操作:

/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend

如果有执行热键的命令,您所要做的就是:

hotkey "ctrl+shift+eject"

答案1

AppleScript 有keystrokekey code命令:

osascript -e 'tell app "System Events" to keystroke "a" using command down'

osascript -e 'tell app "System Events" to key code 126 using {control down, shift down}'

但是没有弹出键的密钥代码。

答案2

您可以将 Lauri 的 AppleScript 与基于热键的系统(Quicksilver、Keyboard Maestro 等)结合起来,创建用于运行复杂命令的热键。但“热键”通常是 GUI 环境的一部分,而不是 CLI。它们不会出现在终端中,但如果您使用 Command-V 粘贴文本,它们的结果可能会出现。

您是否研究过 shell 别名?您可以创建一个名为“lock”的别名,该别名映射到“/System/Library/CoreServices/Menu\ Extras/User.menu/Contents/Resources/CGSession -suspend”。这不是 (GUI) 热键,但既然您特别询问了 CLI,也许这会有所帮助。

相关内容