Karabiner-Elements

2018/06/23

由于 Mac 的键盘和主流布局不一致,许多人都会遇到外接键盘布局不适应的情况;即便是 Mac 的内置键盘,也有人觉得其设计不够合理,不符合自己的工作习惯。好在键盘和使用者之间是可以磨合的,Karabiner-Elements 就是 Mac 上一款非常好用的开源改键利器,能让键盘顺着你的意愿来工作。

基本介绍

安装 完后会有两个应用,一个是 Karabiner-Elements,另一个是 Karabiner-EventViewer

第一个是改键用的主程序,第二个是键鼠事件的监听器,当你不知道目前键盘的某个物理按键对应的是哪个键位, 可以使用这个查看。

Karabiner-Elements

Simple Modifications

简单改键: 将某一个键位更改为另一个键位

用法:

  1. 先在 Target Device 中选择需要修改的键盘, 可以选择 For all devices 或只针对某一个键盘
  2. 点击 Add item 来增加一对按键映射
  3. From key 是物理按键, To key 是你想映射的按键
  4. 如果不知道键盘上某一个物理按键的名字, 可以在 Karabiner-EventViewer 查询
  5. 修改完后也可以在 Karabiner-EventViewer 中查看是否修改成功

下图为我自己外接键盘的一些基本改键, 基本和 Mac 自带键盘键位保持一致

Function Keys

这个主要是修改功能键 F1 - F12 键位的

用法也是先选择需要修改的键盘, 再修改物理按键为映射按键

注: 如果选中左下角的 Use all F1, F2, etc. keys as standard function keys, 则功能键使用默认功能, 上面设置的映射键位不会生效

Complex Modifications

复杂改键, 修改组合键位来实现自定义事件

这里主要介绍一下用 Karabiner-Elements 打造 Vim 风格的方向键。也许你对这个词感到陌生,还会奇怪,干嘛放着 MacBook 上好好的方向键不用?其实,Mac 自带键盘的方向键位于右下角,打字时把爪子挪过去点很不方便,而 Vim 式的操作中,可以挪用 HJKL 四枚按键,调教一下充当方向键,打字时手掌都不用抬起,就能实现光标的移动,很快捷。

  1. 点击左下角的 Add rule 来添加组合键
  2. 软件自带的 Vim 风格的方向键为 right_command + hjkl 来代替方向键, 在 Examples 中可以找到, 点击右侧的 Enable 即可加入到组合键位中, 但实际使用起来有点费劲
  3. 官网的 complex_modifications 找到 Vi Mode (rev 5), 展开后有详细的组合键位说明. 点击右侧的 import 来下载下来, 并导入到软件中.
  4. 重复第一步和第二步, 你可以选择 s 作为触发键, 也可以选择 d 作为触发键, 或者两者都作为触发键
  5. 无法正常使用? 其实官网展开后的键位使用说明最后有这么一句话: Please change your simultaneous_threshold_milliseconds setting in Karabiner-Elements → Complex Modifications → Parameters; A value between 150 and 500 is recommended for this mode. 说白了就是两个按键之间的等待值, 默认是 50ms, 但一般人没法做到组合键这么小的间隔, 就只能调高等待值, 我一般设置为 300, 既不影响打字, 也不影响组合键
  6. 如果不想要某一个组合键, 点击右侧的 Remove 即可移除. 下面的 UpDown 可以排序
  7. 当然官网还有很多组合键, 可以找到自己需要的

Devices

显示此 Mac 中当前连接了哪些键鼠设备

如果连接了外部键盘,也可以禁用 MacBook 内置键盘。

Disable the built-in keyboard while one of the following selected devices is connected. 列表中选择需要使用的键盘, 即可禁用内置键盘, 如果都不勾选, 默认都可以使用

Virtual Keyboard

虚拟键盘

这个一般不需要修改

但如果使用了具有相同 vendor(供应商) id (Ox16cO) 和 product (产品) id (Ox27db) 的其他设备, 那就需要修改了

Profiles

配置列表

在界面上的 Profiles 标签内,可以添加、删除和选中某个配置,select 选中某个配置之后,所有对键位的更改都会保存在当前 select 的这套配置内,比如可以根据使用的键盘不同维护多套配置,以便在使用不同输入设备时切换。

另外,Karabiner 的所有配置都以 JSON 格式文件保存在:~/.config/karabiner/karabiner.json 目录,如果在网上看到别人给出的配置需要编辑 karabiner.json 文件加到其中,如果需要备份配置则可以直接备份这个目录。

也可以通过点击菜单栏图标来切换配置

Misc

其他配置, 包含重置 / 退出 / 更新 / 卸载等

Log

日志, 纪录软件运行的一些参数

Karabiner-EventViewer

Karabiner 提供了查看每个键位代码名称的工具 Karabiner-EventViewer,打开该工具,随后的所有按键操作都会在界面上显示明细,如果有不清楚名称的按键,查看界面中 name 一栏,配置映射时选择对应名称的键位即可。

参考资料