Mac键盘神器 Karabiner的使用,及脚本编写

参考资料:

重点讲一下脚本的编写

  • 找到脚本文件的位置,点击 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:对于多个组合按键,可以用 | 隔开,比如

    • KeyCode::M, ModifierFlag::CONTROL_L|ModifierFlag::OPTION_L|ModifierFlag::COMMAND_L
  * **_含义就是,你要把(原始按键)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> 
键盘示意图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容