Karabiner-Elements 是 macOS 系统一款强大的键盘自定义工具,它不仅允许你改变按键的默认行为,还可以赋予更多功能,甚至能像可编程键盘一样达到层级的效果。

一些功能:

  • 重新映射功能键和修饰键;
  • 按照指定规则修改按键;
  • 可仅针对指定键盘修改;
  • 支持在多个配置间切换;

一些局限:

  • 可能无法修改某些键盘上的弹出键(现在很少见);
  • 第三方键盘的 Fn 键(如无法修改 HHKB 的 Fn 键);
  • 将忽略系统偏好设置中对修饰键的更改;
  • 不能像 Hammerspoon 一样支持多个配置文件(所有配置都在一个文件中,而 JSON 又臭又长,相对 Lua 而言)

安装

Karabiner-Elements 可以直接从官网下载安装,如果 macOS 已安装 brew,则可以通过命令:brew install karabiner-elements安装。当前最新的版本 12.4.0 支持 macOS 10.12 以上,后续文章如无特别注明,均以这个版本为准。

注:

  • 第一次启动 Karabiner-Elements,可能需要到 系统偏好设置 -> 安全性与隐私 - 通用 点允许;
  • 安装完毕后会出现两个程序
    • Karabiner-Elements:应用本身,第一次点击将运行程序,之后便是显示偏好设置;
    • Karabiner-EventViewer:事件查看器,改键的过程可能需要按键对应的名称,同样可通过菜单栏的 Karabiner 图标进入;
  • 如无特别说明,Karabiner 均指 Karabiner-Elements;

偏好设置

Karabiner Preferences 可通过菜单栏图标选择 Preferences 或直接运行程序打开,主要功能有:

  • Simple Modifications:可以简单修按键的映射;
  • Function Keys:修改 F1 ~ F12 的默认功能;
  • Complex Modifications:自定义配置规则名称;
  • Devices
    • 第一部分,把配置应用到勾选的键盘;
    • 第二部分,当勾选的设备连接时,禁用内置键盘;
  • Virtual Keyboard:一般用不到;
  • Profiel:配置文件,其实都是在同一个文件内的,名称可以在菜单栏显示;
  • Misc:杂项
    • Update:是否自动检查升级;
    • Uninstall:可点击这里卸载;
    • System Default Configuration:是否覆盖系统配置,一般不影响;
    • Miscellaneous:是否在菜单栏显示图标和名称;
  • Log:日志,运行正常时一般用不到,可查看错误信息;

EventViewer

打开 Karabiner-EventViewer 后,首先显示的是 Main,这也是查看按键名称(name)和检验按键是否修改成功的地方。当然,除了键盘,还可以查看触摸板和鼠标的操作,另外的几个选项分别为:

  • Frontmost Application:查看应用标识符和路径
  • Variables:后面需要用到的输入法的 ID 便是从这里查看;
  • Devices:查看已连接输入设备的详细信息;
  • EventViewer-Preferences:几个针对 EventViewer 的设置;

配置文件

Karabiner 的配置文件在 ~/.config/karabiner/karabiner.json,每当文件有更改的时候,Karabiner 会自动侦测到改动,从而重新加载配置。也就是说,我们只管更改,保存后 Karabiner 会自动加载新配置。

备份

可以使用 ln 命令创建备份,以备份到 Dropbox 为例:

ln -s ~/.config/karabiner ~/Dropbox

另外,karabiner 下有个备份文件夹 automatic_backups,如果检测到更改会自动备份一次,但仅备份当天第一次更改之前。也就是说,只会在每天的第一次改动前自动备份,之后的变动就需要靠自己了。

简单按键映射

打开 Karabiner 偏好设置,在 Simple Modifications 中 选择 Add item,这里以更改内置键盘 Caps-LockControl 键为例:

  • From key:选择要更改的按键,这里选的是 caps_lock;
  • To Key:想要成为的按键:这里是 lfet_control;

两边都选定之后,便完成了设置,立即生效。另外,如需要更改其它的按键,重复按上诉步骤操作即可。

注:

  • 修饰键是分左右的,left 开头表示的是键盘左边的修饰键,right 则是右边;
  • Target Device 可仅针对选定键盘生效,默认都是 For all devices
  • 设定完后,如果无反映,看看 Preferences -> Devices 中是否有选择对应的键盘;

信息

版本

  • Karabiner-Elements:12.4.0
  • macOS Mojave:10.14.4

参考