Karabiner-Elements 是 macOS 上最强的键位重映射工具之一:它不仅能把某个按键改成另一个按键,还能做“按住当修饰键、点按当普通键”、按键组合触发宏动作、以及“只在某个 App 生效”的专属快捷键。适合做:
1) 把 Caps Lock 变成 Control / Hyper(四修饰键)提升全局快捷键空间;
2) 给 IDE / 终端 / 浏览器做应用专属快捷键;
3) 把一串高频组合键压缩成一个更顺手的按法。
官方下载与说明:https://karabiner-elements.pqrs.org/
常见安装方式二选一:
- Homebrew:brew install --cask karabiner-elements
- 下载安装包(适合不使用 brew 的用户)。
首次启动后请按提示授予必要权限(输入监控、辅助功能等)。这一步是为了让系统允许它接收/重映射键盘事件,属于正常合规权限。
很多人的目标不是“把 Caps Lock 改成 Ctrl”,而是把它改成一个不会和系统快捷键冲突的“超级修饰键”。常见约定:Hyper = left_control + left_option + left_command + left_shift。
思路是:按住 Caps Lock 时输出四修饰键;松开时恢复。这样你可以在 Raycast / Alfred / Keyboard Maestro 等工具里绑定 Hyper + 任意键 作为快捷键。
Karabiner 的高级规则一般通过 JSON 配置实现,配置文件位置通常是:
~/.config/karabiner/karabiner.json
下面示例实现:
- 点按 Caps Lock:输出 escape(适合 Vim 用户);
- 按住 Caps Lock:变成 Hyper(四修饰键);
- 并且只需要把它放进 complex_modifications 的规则里即可。
{ " ": "CapsLock: tap = Escape, hold = Hyper", "rules": [ { "de ion": "CapsLock: tap = Escape, hold = Hyper", "manipulators": [ { "type": "basic", "from": { "key_code": "caps_lock", "modifiers": { "optional": ["any"] } }, "to": [ { "set_variable": { "name": "hyper", "value": 1 } }, { "key_code": "left_shift", "modifiers": ["left_control", "left_option", "left_command"] } ], "to_after_key_up": [ { "set_variable": { "name": "hyper", "value": 0 } } ], "to_if_alone": [ { "key_code": "escape" } ] } ] } ] }
提示:放入 JSON 时注意逗号和括号匹配。如果你不想手改 JSON,也可以在 Karabiner 的 Complex Modifications 面板里导入规则后再微调。
如果你希望某个映射只在特定应用里生效(例如只在终端里把 cmd+j 变成 option+left),可以用条件判断:
{ "de ion": "Example: only in Terminal.app", "manipulators": [ { "type": "basic", "from": { "key_code": "j", "modifiers": { "mandatory": ["command"] } }, "to": [ { "key_code": "left_arrow", "modifiers": ["option"] } ], "conditions": [ { "type": "frontmost_application_if", "bundle_identifiers": ["^com\.apple\.Terminal$"] } ] } ] }
你可以把 bundle_identifiers 换成自己的 App。获取 bundle id 的方式很多,最简单是用系统信息工具或搜索应用开发者文档(不同 App 会不同)。
1) 先备份配置:cp ~/.config/karabiner/karabiner.json ~/.config/karabiner/karabiner.json.bak
2) 出现“键盘失灵/快捷键异常”时,优先在 Karabiner 面板里临时禁用对应规则,确认问题来源。
3) 若要快速恢复默认:可以把备份文件恢复回去,再重启 Karabiner。
4) 避免一次性改太多:每次只加一条规则,验证正常后再继续。
- Karabiner-Elements:https://karabiner-elements.pqrs.org/
- 规则示例与社区配置(可参考思路):https://ke-complex-modifications.pqrs.org/
- Goku(把配置写成更易维护的格式再生成 JSON,可选):https://github.com/yqrashawn/GokuRakuJoudo