如何对 MacBook 上的功能键进行编程?

use*_*662 5 macbook automation automator

我想将基本任务分配给 MacBook 上的功能键(或其他更简单的键)。例如,当按下 F1(或任何键)时,我希望发生以下情况:

  1. 启动 Safari
  2. 打开一个新窗口
  3. 导航到某个指定的站点

另一个例子可能是:

  1. 启动 Xcode
  2. 打开一些特定的项目

我已经尝试过使用 Automator 重命名特定目录中的数十个文件,但我不知道从哪里开始上述示例。

Arj*_*jan 8

通过创建新服务,在 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 中:

  • 打开系统偏好设置»键盘»面板键盘快捷键。
  • 在左侧窗格中选择“服务”。
  • 在右侧窗格中向下滚动到常规。
  • 双击您刚刚创建的 Automator 工作流程的右侧。
  • 按下您要使用的键(如果适用,如果您收到“另一个操作使用的快捷方式”警告,请删除现有关联),然后切换窗格以确保新的快捷方式已保存。

不幸的是,这种方式似乎无法为Services分配功能键(该键已显示但仍处于“编辑模式”,点击别处时丢失,这与将功能键分配给Exposé等内置东西不同,或添加应用程序快捷方式时)。

要分配功能键,有两个选项:

  1. 假设大多数应用程序都有一个服务菜单,因此会找到与出现在那里一样的名称。因此,如果服务名为“Open Super User”,则映射菜单项 Services » Open Super User:

    • 打开系统偏好设置»键盘»面板键盘快捷键。
    • 在左侧窗格中选择“应用程序快捷方式”。
    • 在右侧窗格中选择“所有应用程序”。
    • 添加准确名称“打开超级用户”的条目并分配一些功能键。
  2. 或者,使用命令行:

    • 发现它的十六进制键码:F1 = \UF704,F2 = \UF705,...,F6 = \UF709,= F7 \UF70A等等
    • 使用@for Command、^Ctrl、~Option 和$Shift 的任意组合作为前缀。
    • 打开终端。如果服务的名称是Open Super User,则将该服务映射到 F1,请运行:

      defaults write pbs NSServicesStatus -dict-add \
        '"(null) - Open Super User - runWorkflowAsService"' \
        '{ "key_equivalent" = "\UF704"; }'
      
      Run Code Online (Sandbox Code Playgroud)

      或者对于 Command-Shift-F12:

        '{ "key_equivalent" = "@$\UF70F"; }'
      
      Run Code Online (Sandbox Code Playgroud)
    • 要让所有正在运行的应用程序都知道您使用终端所做的更改:

      • 如果已经在运行,请关闭系统偏好设置。
      • 在系统偏好设置»键盘»面板键盘快捷键中找到您的新服务,如上所述。
      • 禁用并重新启用其复选框以使每个应用程序都知道更改。

肯定也有一些 AppleScript 版本,但我不是专家……有人吗?