![如何对 MacBook 上的功能键进行编程?](https://linux22.com/image/1222429/%E5%A6%82%E4%BD%95%E5%AF%B9%20MacBook%20%E4%B8%8A%E7%9A%84%E5%8A%9F%E8%83%BD%E9%94%AE%E8%BF%9B%E8%A1%8C%E7%BC%96%E7%A8%8B%EF%BC%9F.png)
我想将基本任务分配给 MacBook 上的功能键(如果更方便的话,也可以是其他键)。例如,我希望按下 F1(或任何键)时发生以下情况:
- 启动 Safari
- 打开新窗口
- 导航到某个指定站点
另一个例子是:
- 启动 Xcode
- 打开一些特定的项目
我曾尝试使用 Automator 来执行诸如重新命名特定目录中的数十个文件之类的操作,但我不知道从何处开始执行上述示例。
答案1
在 OS X 10.6 Snow Leopard 中,通过创建新服务,这非常简单。早期版本的 OS X 不支持此功能。例如:
- 启动应用程序»Automator。
- 选择“服务”作为新 Automator 工作流程的模板。
- 在右侧窗格顶部,选择“服务接收没有输入在任何应用程序“。
- 将操作“运行 AppleScript”从左侧窗格拖到右侧窗格的工作流中。
- 将默认值替换为:
运行 {输入,参数} 告诉应用程序“Safari” 启用 打开位置“http://superuser.com/” 结束告诉 返回输入 结束运行
- 可选:单击运行按钮进行测试。
- 按 Cmd-S 保存。您输入的名称将成为服务菜单中的名称。工作流程将保存在 中
~/Library/Services
。
或者,让默认应用程序打开文件或位置†:
- 不要将操作“运行 AppleScript”拖入工作流程,而是使用“运行 Shell 脚本”。
- 将 Shell 保留为默认的“/bin/bash”,并将默认命令替换
cat
为:打开“http://superuser.com”
或者打开“/Developer/Examples/OpenGL/Cocoa/CocoaGL/CocoaGL.xcodeproj”
要在 10.6 中分配 [键盘快捷键][3]:
- 打开系统偏好设置»键盘»窗格键盘快捷键。
- 在左侧窗格中选择“服务”。
- 在右侧窗格中向下滚动到常规。
- 双击刚刚创建的 Automator 工作流程的右侧。
- 按下您想要使用的键(如果适用,如果收到“快捷方式已被其他操作使用”的警告,则删除现有关联),然后切换窗格以确保新的快捷方式已被保存。
不幸的是,这样一来,服务似乎无法被分配功能键(该键显示但仍处于“编辑模式”,单击其他地方时该键就会丢失,这与将功能键分配给内置功能(如 Exposé)或添加应用程序快捷方式时不同)。
要分配功能键,有两个选项:
- 假设大多数应用程序都有“服务”菜单,因此会找到那里显示的名称。因此,如果服务名为“打开超级用户”,则映射菜单项“服务”»“打开超级用户”:
- 打开系统偏好设置»键盘»窗格键盘快捷键。
- 在左侧窗格中选择“应用程序快捷方式”。
- 在右侧窗格中选择“所有应用程序”。
- 添加一个精确名称为“打开超级用户”的条目并分配一些功能键。
- 或者,使用命令行:
查找其十六进制键码:F1 =
\UF704
,F2 =\UF705
,...,F6 =\UF709
,F7 =\UF70A
,ETC。@
在其前缀中添加Command、^
Ctrl、~
Option 和$
Shift的任意组合。打开终端。如果服务名称为
Open Super User
,则要将该服务映射到 F1,请运行:defaults write pbs NSServicesStatus -dict-add \ '"(null) - Open Super User - runWorkflowAsService"' \ '{ "key_equivalent" = "\UF704"; }' Or for Command-Shift-F12: '{ "key_equivalent" = "@$\UF70F"; }'
要使所有正在运行的应用程序知道您使用终端所做的更改:
- Close System Preferences if that was already running. - Find your new service in System Preferences » Keyboard » pane Keyboard Shortcuts like described above. - Disable and re-enable its checkbox to make every application aware of the change.
†这个肯定也有一些 AppleScript 版本,但我不是专家...有人知道吗?
答案2
我认为,如果不借助第三方应用程序,就没有办法在 Mac OS X 上实现这一点。
水银是这些第三方应用程序之一,并且有关于设置的出色教程Quicksilver 中的触发器. 使用 Quicksilver,您可以设置它来激活您想要激活的任何程序,甚至运行外部脚本,然后执行诸如 Automator 脚本之类的操作。
答案3
您可以使用快速脚本为 AppleScript 或 Automator 操作分配键盘快捷键。