使用教程 macOS

Karabiner-Elements 入门:权限、单键改映射与复杂规则一次讲清

Karabiner-Elements 改键不生效多半是权限没给全。本文讲清输入监控与辅助功能两项权限、Simple/Complex Modifications 的区别,以及如何导入官方规则库。

内容最后核实:2026-09-24(软件更新后步骤可能变化,失效请通过 征集与反馈页反馈)

Karabiner-Elements 是 macOS 改键的事实标准,但它"改完键没反应"的劝退率也是最高的——原因几乎都出在权限上。先把两项权限给对,再谈玩法。

第一步:给全两项权限(必做)

brew install --cask karabiner-elements

安装后打开 系统设置 → 隐私与安全性,确认 Karabiner-Elements / karabiner_console_user_server 出现在以下两个列表并且已勾选:

  1. 输入监控(Input Monitoring)——不勾选则完全读不到按键;
  2. 辅助功能(Accessibility)——不勾选则能读键但发不出改后的键。

常见坑:升级系统或重装软件后权限会被重置,表现为"突然所有规则失效",回去重新勾一遍即可。

第二步:单键替换用 Simple Modifications

把某个键一对一换成另一个键(这是最简单的场景):

  1. 打开 Karabiner-Elements → Simple Modifications 标签;
  2. 选目标设备(如 Mac 内置键盘),点 Add item;
  3. From key 选 caps_lock,To key 选 escape——经典"大写锁定向 Esc"改法,Vim 用户必备。

第三步:组合与条件规则用 Complex Modifications

需要"按下 A 时是 X、组合时是 Y"这类逻辑(比如 Cmd+H 显示桌面、双击修饰键切换输入法),用 Complex Modifications 标签。

不要手写 JSON——官方规则库收录了几百条现成规则:

  1. 点 Add predefined rule,会跳转到 ke-complex-modifications.pqrs.org;
  2. 搜索想要的规则(如 "Emacs key bindings"、"Win-style shortcuts"),点 install;
  3. 回到软件勾选启用即可。

第四步:外接键盘要单独确认设备

插上机械键盘后规则不生效?到 Devices 标签:

  1. 确认外接键盘出现在列表里;
  2. 勾选 Modify events,否则该键盘按键原样直通,所有规则都不作用于它。

调试:规则到底触发没有

菜单栏图标 → EventViewer,能看到 Karabiner 实际拦截到的按键流。改了规则没效果时:在这里按一遍按键,确认 From 描述的和系统收到的键名一致(例如很多人以为改了右 Shift,实际系统上报的键名是 right_shift)。

配置文件在 ~/.config/karabiner/karabiner.json,换 Mac 同步配置直接拷这一个文件;软件会自动热加载,改完保存立即生效,不用重启。

涉及的软件