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

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

我想将基本任务分配给 MacBook 上的功能键(如果更方便的话,也可以是其他键)。例如,我希望按下 F1(或任何键)时发生以下情况:

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

另一个例子是:

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

我曾尝试使用 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é)或添加应用程序快捷方式时不同)。

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

  1. 假设大多数应用程序都有“服务”菜单,因此会找到那里显示的名称。因此,如果服务名为“打开超级用户”,则映射菜单项“服务”»“打开超级用户”:
  • 打开系统偏好设置»键盘»窗格键盘快捷键。
  • 在左侧窗格中选择“应用程序快捷方式”。
  • 在右侧窗格中选择“所有应用程序”。
  • 添加一个精确名称为“打开超级用户”的条目并分配一些功能键。
  1. 或者,使用命令行:
  • 查找其十六进制键码:F1 = \UF704,F2 = \UF705,...,F6 = \UF709,F7 = \UF70AETC

  • @在其前缀中添加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 操作分配键盘快捷键。

相关内容