Karabiner 在 macOS Sierra 下的解决方案
- 2016-09-26更新: HHKB支持。
- 2016-10-04更新: 蓝牙鼠标支持。
- 2016-10-10 更新: macOS Sierra 兼容软件列表。
今天手贱升级了 macOS Sierra ,进入新系统后发现 Karabiner 不能用了。
Karabiner 用来映射按键,我在 OS X 技巧与软件选择 一文中提到过。对于我这种使用 HHKB 键位的小众人群来说,所有的按键都必须一致,否则效率奇低。使用 Karabiner 把我常用的键盘定义存成 Profile 就行了。
但由于 macOS Sierra 大幅修改了鼠标和键盘驱动,导致 Karabiner 在该系统下无法工作。我定义的所有 Profile 都失效了。
Karabiner 作者也在官网提到了:
macOS Sierra support status
Karabiner does not work on macOS Sierra at the moment.
We are developing Karabiner-Elements which provides simple key modification for macOS Sierra at first. (Karabiner-Elements works on macOS Sierra except prefernces GUI.)
We'll start updating for the full featured Karabiner for Sierra after Karabiner-Elements is completed.
目前 Karabiner-Elements 还没有较好的 GUI 界面,需要直接修改配置文件。
因为这是个不完善的版本,使用方法随时可能修改,我就不写使用方法说明了,直接看文档:
https://github.com/tekezo/Karabiner-Elements/blob/master/usage/README.md
贴上我的配置文件:
1{
2 "profiles":[
3 {
4 "name":"Internal",
5 "selected":true,
6 "simple_modifications":{
7 "backslash":"delete_or_backspace",
8 "delete_or_backspace":"backslash"
9 }
10 },
11 {
12 "name":"HHKB",
13 "selected":false,
14 "simple_modifications":{
15 }
16 }
17 ]
18}
我的配置文件中,Internal 配置(MBP 内置键盘)中,把删除键和反斜杠按键进行了调换。因为我常用键盘是 HHKB Pro2 ,这样切换是为了保证键位和 HHKB 一致。
注意删除键的名称并不是 delete
,而是 delete_or_backspace
。这个在官方给出的文档中也是错的。
反斜杠按键的名称是 backslash
。
更多的按键名称可以看源码 types.hpp 。
我的配置文件中,HHKB 这个配置中什么都没有填写,是为了还原原始的配置。如果两个配置的 selected 值都为 true,则会以最上面的一个为准(因为最先碰到这个 true)。
悲催的是,当我打开 Karabiner-Elements 之后,按键切换是正常了,但蓝牙鼠标立马不能用了。
希望我的 HHKB 还能用……明天去公司试试。
2016-09-26 更新:
在开启和关闭 Karabiner-Elements 时,HHKB Pro2 一切如常。Apple Magic Trackpad 也一切正常。看来只有蓝牙鼠标有问题了。目前的解决方案只能是:在使用 Karabiner-Elements 的时候,放弃使用蓝牙鼠标。
2016-10-04 更新:
升级到 0.90.46 版本之后,Karabiner-Elements 已经不会影响我的蓝牙鼠标的使用。如果已经连接了鼠标,开启 Karabiner-Elements 之后鼠标失效,那么可以关闭鼠标然后重新开启,鼠标再次生效后就可使用了。
但我又发现了另一个问题,在开启 Karabiner-Elements 之后,操作系统中映射的“修饰键”无效了。例如,我习惯把 Caps Lock 键映射成为 Control 键,但开启 Karabiner-Elements 之后,Caps Lock 按键上的指示灯又会亮起,功能还原了。即使我在 Bluetooth Mouse 中再次进行映射也无济于事(如下图)。
解决这种情况,需要在配置文件中加入一行映射:
1 "simple_modifications":{
2 "backslash":"delete_or_backspace",
3 "delete_or_backspace":"backslash",
4 "caps_lock":"left_control"
5 }
2016-10-10 更新:
P.S. 从这段时间的使用看来,并不是仅有 Karabiner 不能使用。在我的机器上, MplayerX 和 GIMP 都不能使用了。这里有一个列表,显示 macOS Sierra 的软件兼容情况: macOS Sierra 10.12: Compatible Apps 。
(全文完)
- 文章ID:2580
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/karabiner-in-macos-sierra/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。