【究级篇——脚本编写】
我们先不谈上文遗留下来的功能键代替手势问题, 先来看有些键盘的功能区是这个样子的。
毫无疑问,这些媒体和音量控制键在mac中默认是没有用处的,即使karabiner也没有默认的这些键的改动。这时候karabiner给我们提供了很人性化的脚本编写功能,你可以自定义这些键的用处,通过编写脚本让软件识别。
过程:
在菜单栏右边找到图标,单击-> Preferences;
切换到 Misc& Uninstall 标签;
点击 Open private.xml 按钮,在弹出的界面打开 private.xml;
默认只有两个root标签,代码写在标签里就好。
写代码就是简单的xml了
首先是对文件的描述(最后一行一定要,标签中写什么随意,描述一下脚本功能就可以)
比如:
<name>Functions</name>
<appendix>volume&music</appendix>
<identifier>remap.volumeKeys</identifier>
然后就是自定义键位,大体可以分为两种:
第一种是把指定的键定义成指定的功能
格式是:
<autogen>
--KeyToConsumer--KeyCode::你要改的键,
ConsumerKeyCode::想要改成的功能
</autogen>
例如把pageup键改成音量增加的功能:
<autogen>
--KeyToConsumer--KeyCode::PAGEUP,
ConsumerKeyCode::VOLUME_UP
</autogen>
那么之前的手势功能能不能用第一种情况呢,建议不要,因为手势功能不像媒体和音量控制有专门的术语(至少我还没找到)。
这种情况可以用单键代替组合键的格式来写:
<autogen>
--KeyToKey-- KeyCode::单键,
KeyCode::组合键中后按的键,
ModifierFlag::组合键中先按的键(例如ctrl,command之类)
</autogen>
例如把F10改成四指右扫向右移动一个space的功能(组合键是control+→):
<autogen>
--KeyToKey-- KeyCode::F10,
KeyCode::CURSOR_RIGHT,ModifierFlag::CONTROL_R
</autogen>
我们可以看出上述代码都需要按键缩对应的KeyCode,那么如何知道这些按键的代码呢,其实像F1,F2。。。或普通字母键这样简单的按键,按键本身就是它的代码,比如A键的代码就是KeyCode::A。
而对于比较复杂的按键如control,option,或者是像方向键这种没有字母标注的键,『Karabiner』提供了eventviewer组件,Eventviewer 可以捕捉你的按键动作并给出相应的按键信息,其中就包括按键代码。
点击菜单栏上的方形图标选择『Launch Eventviewer』
之后会弹出这样的表格界面
此时每按下一个键,表格里都会出现相应的键的信息,注意我们这里需要的KeyCode不在『code』栏中,而是『misc』栏中显示的内容。如上图显示,左ctrl的代码就是CONTROL_L。
这样编写脚本就很简单了,你的机械键盘在mac系统中也能随心所欲的使用了~