参考资料:
附上官网链接:Karabiner官网
安装完成后有一个解锁的功能,按照步骤完成即可。
-
安装完成后桌面上菜单栏会有一个正方形图标,点击后选择『pereference』
图一
重点讲一下脚本的编写
-
找到脚本文件的位置,点击 Open private.xml 按钮,在弹出的界面打开 private.xml;
图二 - 说明一下语法,功能写在两个root之间
<?xml version="1.0"?>
<root>
<item>
<name>Swap Space and Tab</name>
<identifier>private.swap_space_and_tab</identifier>
<autogen>__KeyToKey__ KeyCode::SPACE, KeyCode::TAB</autogen>
<autogen>__KeyToKey__ KeyCode::TAB, KeyCode::SPACE</autogen>
</item>
<item>
<name>Change Right Command Key to Escape</name>
<identifier>private.right_command_to_escape</identifier>
<autogen>__KeyToKey__ KeyCode::COMMAND_R, KeyCode::ESCAPE</autogen>
</item>
</root>
\<item\>
\<name\> 设置名称 \</name\>
\<appendix\>副标题(非必要的)\</appendix\>
\<identifier本设置的标签,通常要加一个private.的前缀 \</identifier\>
\<autogen\>按键定义\</autogen\>
\<autogen\>按键定义\</autogen\>
\</item\>
<autogen>
的用法
- 你要更改哪个键:
__KeyToKey__ KeyCode::
- 你要改成的功能:
ConsumerKeyCode::
- 你要改成 —— 组合键中后按的键:
KeyCCode::
- 你要改成 —— 组合键中先按的键:
ModifierFlag::
TIPS:对于多个组合按键,可以用 | 隔开,比如
-
* **_含义就是,你要把(原始按键)F10 改成 (功能)左Ctrl + 左Option + 左Cmd_**
## 举例:
* 例如把F10改成四指右扫向右移动一个space的功能(组合键是control+→):
<autogen>
KeyToKey KeyCode::F10,
KeyCode::CURSOR_RIGHT,ModifierFlag::CONTROL_R
</autogen>
## TIPS: 如何获取键值
* 我们可以看出上述代码都需要按键对应的KeyCode,那么如何知道这些按键的代码呢,其实像F1,F2。。。或普通字母键这样简单的按键,按键本身就是它的代码,比如A键的代码就是KeyCode::A。
* 而对于比较复杂的按键如control,option,或者是像方向键这种没有字母标注的键,『Karabiner』提供了eventviewer组件,Eventviewer 可以捕捉你的按键动作并给出相应的按键信息,其中就包括按键代码。
![访问launch EventViewer](http://upload-images.jianshu.io/upload_images/1180547-107fa0857ec7e993.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
![示意图](http://upload-images.jianshu.io/upload_images/1180547-9ef4e66bebfaf8d0.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
* 此时每按下一个键,表格里都会出现相应的键的信息,注意我们这里需要的KeyCode不在『code』栏中,而是『misc』栏中显示的内容。如上图显示,左ctrl的代码就是CONTROL_L。
## 写好的脚本如何载入
### 因为重新载入一个private.xml很麻烦,所以建议将源文件备份。
* 通过上面说的open private.xml定位到对应的路径
* 修改该路径
* ![示意图](http://upload-images.jianshu.io/upload_images/1180547-04bbda80bd76850e.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
## 附上RK61 键盘改动代码
```xml
<item>
<name>RK61 Fucking ArrowBtn</name>
<appendix>←↓→↑</appendix>
<identifier>private.ArrowSuitableForRK61</identifier>
<autogen>__KeyToKey__ KeyCode::COMMAND_R, KeyCode::CURSOR_LEFT </autogen>
<autogen>__KeyToKey__ KeyCode::CONTROL_R, KeyCode::CURSOR_RIGHT </autogen>
<autogen>__KeyToKey__ KeyCode::PC_APPLICATION, KeyCode::CURSOR_DOWN </autogen>
<autogen>__KeyToKey__ KeyCode::SLASH, KeyCode::CURSOR_UP </autogen>
*<!-- replace them all -->*
<autogen>__KeyToKey__ KeyCode::CURSOR_LEFT, KeyCode:: COMMAND_R </autogen>
<autogen>__KeyToKey__ KeyCode::CURSOR_RIGHT, KeyCode:: CONTROL_R</autogen>
<autogen>__KeyToKey__ KeyCode::CURSOR_DOWN, KeyCode::PC_APPLICATION </autogen>
<autogen>__KeyToKey__ KeyCode::CURSOR_UP, KeyCode::SLASH </autogen>
</item>
键盘示意图