macOS热键自动化分三层:轻量用系统服务,通用用Automator绑定快捷键,灵活用Keyboard Maestro,底层响应用Karabiner-Elements;注意脚本健壮性与权限设置。

在 macOS 中配置热键触发的自动化工作流脚本,核心是把脚本“注册”为系统可识别、可响应快捷键的操作。不依赖单一工具,而是按需求强度分层实现:轻量用系统原生服务,稳定用 Automator + 系统快捷键,灵活用 Keyboard Maestro,底层响应用 Karabiner-Elements。
用 Automator 封装脚本并绑定全局热键
这是最通用、无需额外安装的方案,适合 AppleScript 或 Shell 脚本,且能在任意应用中触发:
- 打开 Automator,新建「快速操作」文档
- 从左侧「实用工具」拖入「运行 AppleScript」或「运行 Shell 脚本」
- 粘贴已验证有效的代码(例如:tell application "Notes" to activate),保存为「启动备忘录」
- 进入「系统设置 → 键盘 → 键盘快捷键 → 服务」,在底部「快速操作」里找到刚保存的项
- 点击其右侧空白处,按下你想用的组合键(如 Cmd + Option + N),确保左侧复选框已勾选
用 Keyboard Maestro 实现一键执行复杂流程
适合多步骤、跨应用、带条件判断或需要图形反馈的场景,比如「按 Ctrl+Opt+B → 备份桌面文件 + 发送通知 + 清空废纸篓」:
- 官网下载安装 Keyboard Maestro,首次运行时开启「辅助功能」和「全盘访问」权限
- 点击「新建宏」,命名后在「触发器」中添加「快捷键」,如 Ctrl + Option + B
- 在「动作」中添加「执行脚本」,选择 AppleScript / Shell / JavaScript,并粘贴完整逻辑
- 支持变量、if 判断、等待窗口出现等高级控制,比 Automator 更可控
用 Karabiner-Elements 实现真正底层热键响应
当快捷键必须在锁屏界面、登录窗口、或任何无焦点状态下生效(比如唤醒 Alfred、强制退出卡死应用),就得用它:
- 安装 Karabiner-Elements 后,在「Complex Modifications」→「Add rule」中导入或新建规则
- 例如将 Cmd + Option + Space 映射为执行:open -a "Alfred 6"
- 也可映射为 AppleScript 命令:osascript -e 'display notification "已触发"'
- 所有规则在内核层生效,不依赖当前应用是否响应快捷键,也不受菜单栏可见性影响
小技巧:让脚本更可靠
无论用哪种方式,以下细节常被忽略但直接影响成功率:
- AppleScript 中调用应用前,建议先加 if application "Safari" is running then ... 防止报错
- Shell 脚本若涉及 GUI 操作(如打开 Finder 窗口),需确保在用户会话下运行,避免后台执行失败
- 所有自定义快捷键必须含至少一个修饰键(Cmd / Option / Ctrl / Shift),纯字母组合无效
- 若快捷键没反应,检查「系统设置 → 隐私与安全性 → 辅助功能」中相关工具是否已授权


















