OS X是否提供将键组合绑定到通常在命令行上运行的命令的简便方法?
例如,是否有某种方法可以将⌘ Cmd+ 分配L为全局快捷方式以快速锁定我的屏幕(可能使用)/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine
?
OS X是否提供将键组合绑定到通常在命令行上运行的命令的简便方法?
例如,是否有某种方法可以将⌘ Cmd+ 分配L为全局快捷方式以快速锁定我的屏幕(可能使用)/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine
?
Answers:
是的,您可以使用Applescript或Automator进行此操作。
我这样做的方法是使用Automator创建可在所有应用程序中使用的服务。可以使服务运行bash / zsh / ruby /任何脚本。然后,您可以在系统偏好设置的“键盘”面板中将按键组合绑定到服务。
在此MacBreak播客的结尾附近,详细显示了此过程。
编辑:我只是注意到您没有使用Snow Leopard。我认为使用10.5.8创建系统范围的服务并不容易。我想您无法升级,因为它是Powerbook。您可能需要研究FastScripts,该脚本允许您将快捷键分配给applescripts(最多可免费使用10个键盘快捷键)并使用以下Applescript:
do shell script "/System/Library/Frameworks/ScreenSaver.framework/Resources/ScreenSaverEngine.app/Contents/MacOS/ScreenSaverEngine"
我目前使用FastScripts。它包括中的所有脚本~/Library/Scripts/
,因此您不必手动添加脚本。它还支持特定于应用程序的脚本,并且具有一些可用于AppleScripts的功能,例如它在keystroke
或key code
命令之前停止脚本,直到释放修饰键为止。
如果您购买了Powerpack for Alfred 2,则可以创建如下工作流程:
默认情况下,热键的延迟很短,但是您可以通过更改触发行为来减少延迟:
KeyRemap4MacBook还支持运行的外壳脚本:
<?xml version="1.0"?>
<root>
<vkopenurldef>
<name>KeyCode::VK_OPEN_URL_SHELL_say_a</name>
<url type="shell">say a</url>
</vkopenurldef>
<item>
<name>test</name>
<identifier>test</identifier>
<autogen>__KeyToKey__ KeyCode::A, KeyCode::VK_OPEN_URL_SHELL_say_a</autogen>
</item>
</root>
其他支持为脚本分配快捷方式的应用程序:
另一种选择是创建Automator服务:
自10.7起出现了一个错误,其中服务的快捷方式在您将鼠标悬停在菜单栏中的服务菜单上之前并不总是起作用。当没有服务菜单的应用程序(例如Tower)位于最前面时,服务快捷键将不起作用。运行服务之前还存在明显的延迟。
这是我制作的KeePass.sh脚本示例。我只是获取了信息,并将其设置为与Terminal一起运行。之后,我在桌面上为其创建了别名。它在终端中运行KeePass.sh脚本,然后退出应用程序后,它将杀死所有打开的终端窗口。您可能需要调整最后一行:-)
cd ~/Documents/KeePass
/Library/Frameworks/Mono.framework/Versions/current/bin/mono KeePass.exe 1>/dev/null 2>/dev/null
cd ~
killall Terminal
您无需在这里使用其他所有人的答案中的任何特殊内容。
open -a ScreenSaverEngine
甚至短一点。