Karabiner 是一款 macOS 平台修改键位映射的开源程序。

Karabiner

Karabiner 是一款 macOS 平台修改键位映射的开源程序,有任何需要更改键位默认行为的需求都可以尝试用 Karabiner 做相应的映射,开源且免费。

Karabiner Elements

在 macOS 更新到 Sierra 版本后原来的 Karabiner 版本失效了,于是作者起了一个新的项目 Karabiner Elements,简易的实现了原版本的核心功能,让 macOS Sierra 以上的用户在原 Karabiner 新版开发完成之前先凑合用上。

主要功能

  • 普通键位映射:将键盘上的某个键位映射为任意指定的其他键位。
  • 功能键位映射:将键盘上的功能键(Fn)映射为任意指定的其他键位。
  • 可以同时对连接到 Mac 的多个键盘设备生效。
  • 可以选择仅对特定键盘设备生效。
  • 支持虚拟键盘(ANSI, ISO, JIS)等。
  • 支持多套偏好设置,可根据场景切换使用。

安装

除了官方 Github 上提供的版本外,建议安装 这个 PR 里的分支版本,提供了多个键位映射到一个键位的功能,目前还没有被合并到官方主分支。

下载:https://github.com/wwwjfy/Karabiner-Elements/releases

安装完成后打开 Karabiner Elements,主界面如下:

14982967543253.jpg

应用

键位映射

在 Mac 上使用外接键盘一般都会遇到部分键位和 Mac 键盘布局不匹配的问题,系统本身提供了对于功能键的映射功能,但如果你的键盘有 AppFn 等特殊按键,系统自带的配置功能就搞不定了。

14982946693811.jpg

而在 Karabiner 里提供的选择非常多,基本可以覆盖绝大多数外接键盘可能用的键位。

14982967198860.jpg

简单配置 From KeyTo Key 即可完成一条键位映射的配置:

14982970600598.jpg

比如上图就是把 App 键映射到 右 Command 键。


需要注意的是 Karabiner 的配置会覆盖 macOS 自身的键盘配置,如果之前用默认的设置修改过修饰键等映射,使用 Karabiner 后都需要在 Karabiner 里配置一套相同的设置。

多套配置

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

另外,Karabiner 的所有配置都以 JSON 格式文件保存在:

~/.config/karabiner/karabiner.json

目录,如果在网上看到别人给出的配置需要编辑 karabiner.json 文件加到其中,如果需要备份配置则可以直接备份这个目录。


Karabiner Elements 目前并不支持一个键位映射只对某一个键盘设备生效,所以使用不同的键盘设备需要手动切换配置来启用。
这里有 一个 PR 提供了单个映射只对指定设备生效的支持,目前还没有被合并到 master,可以关注一下。

Hyper Key

所谓的 Hyper Key 就是将 左 Control + 左 Option + 左 Command + 左 Shift 这四个键的组合键映射到某一个键上,一般映射到对大多数人都不太常用的 CapsLock(大小写锁定键)上,按下 CapsLock 键就相当于按下了以上 4 个键的组合键,这样一来可以使用 CapsLock + 任意键 组合出一整套新的快捷键,而且几乎不会和所有第三方 App 或系统快捷键冲突,可以说是拯救了 Mac 上十分不够用的快捷键配置。

如果安装了上述非官方分支的版本,可以按以下步骤来设置 Hyper Key

  1. 用任意文本编辑器打开 ~/.config/karabiner/ 文件。
  2. 将下面的代码复制粘贴到红框中的位置。
  3. 保存文件。

代码:

1
2
3
4
5
6
7
8
"one_to_many_mappings": {
"caps_lock": [
"left_control",
"left_shift",
"left_option",
"left_command"
]
},

复制到下图红框中的位置:

14983003863869.jpg

这段配置即可把 左 Control + 左 Shift + 左 Option + 左 Command 映射到 CapsLock 键上。

可以看到 Karabiner 所有的配置描述都并列的写在了 profiles 这个 key 里面。


添加配置描述的时候需要看清楚当前添加的是哪套配置文件,比如上面例子里添加的配置就属于 PCKeyboard 这套配置文件。

有了 HyperKey 再配合上 Keyboard Maestro 这样的工作流效率工具,基本上就是图形界面版的 AHK(AutoHotKey)。

Alfred Workflow

很多时候都可能需要维护不止一套配置,比如在办公室或家里会用外接键盘,带着笔记本出门一般只会用 Mac 自带的键盘,而 Karabiner 默认是通过点击菜单栏图标来切换配置:

14983014591849.jpg

不仅需要鼠标精确操作而且常驻一个除此之外并没有太多卵用的菜单栏图标,这里提供一个快速切换配置的 AlfredWorkflow:

https://github.com/Newt0n/newt0n.github.io/raw/master/2017/06/24/karabiner-elements/Karabiner%20Elements%20Profile.alfredworkflow

默认关键词 kep,选择配置名称完成切换,全键盘操作:

14983016279993.jpg

工具

Karabiner EventViewer

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

14983023161858.jpg

对我而言 Karabiner 最主要的用途就是用配置的 HyperKey 配合 Keyboard Maestro 来实现各种定制化快捷操作,相比以前在 Win 上用 AHK,给我的感觉是功能和灵活性不输,图形界面则更佳方便易用,有空会再分享一篇 Keyboard Maestro 的使用场景。

参考

关注 NewtonIO - 创造者们的技术与工具