对于mac用户(不讨论装win的情况)来说,自带的键盘都带有独特的f区快捷键和强大的触控板,却存在着键程短和触感反人类等劣势,因此对于需要长时间输入的mac用户来说,配一个机械键盘也是很有必要的。
但是机械键盘大多是按晕头死排布的,虽然在mac上也能用,但多少会有些别扭,更有甚者,打着支持os x系统的嘘头,结果只是送了两颗command键帽而已。而网上对机械键盘在mac下的设置介绍的少且零碎,小弟不才,借着这次入手wasd键盘的感受,和大家分享下mac中设置外接键盘的技巧。
从镇楼图可以看出在外接机械键盘之后,自带键盘和触摸板由于距离太远,已经不方便按到了。所以对机械键盘设置的目的应该是尽量便捷的实现自带键盘的快捷键和触摸板的手势功能。
首先是苹果键,也就是command键,这颗按键在普通机械键盘上并不存在。在初次连接外接键盘时,系统会自动弹出键盘的设置。你只需要在按照提示在外接的键盘上找到相应的按键并且按下来进行识别。
如果系统没有自动弹出提示,也可以通过“系统偏好设置”—“键盘”—“更改键盘键盘类型”来进行识别。识别之后,系统会将键盘上的Windows映射成苹果键,alt键映射成option键。
这里还有一点小问题,对于长时间使用mac键盘布局的人来说,这样的布局是和习惯刚好相反的。在mac键盘中,苹果键应该在alt的位置,而option则在windows key所在的位置,这时候可以用键盘设置中的『修饰键…』进行修改。最后把alt和windows的键帽拔出来换互换以防视觉上的混淆~ 完成后,可以通过command+C 和 command+V进行复制粘贴的测试
mac的触摸板实在强大,多点触控手势可以做到很多功能,使用频率也很高,好在这些手势都可以用键盘组合键代替。
但组合键毕竟难记,再加上普通机械键盘在mac上有一些键本身用处不大(如87或104键盘多出来的f区或功能区),如果能将这些复杂的组合键转化成单键功能,可以大大提高日常使用效率。一种简单的办法是在系统键盘设置中设置快捷键。手势的功能大多集中在Mission Control中,可以按照自己的喜好设置,建议改成F区的多余按键。
那么问题来了,对于普通机械键盘来说,功能区的按键在mac中用处也不大,能不能改成快捷键的功能呢?答案是通过系统自带的键盘设置并不能~因为不能识别这些键(完全为os x设计的键盘是可以识别的)。How to solve it?请看究级篇。
F区快捷键: 对于mac键盘,默认f区的功能: F1-F2:屏幕亮度调节; F3:Misson Control; F4: Launchpad; F5-F6: 自带键盘亮度调节; F7-F9:媒体控制; F10-F12:音量调节。
想要把普通机械键盘的f区也改成这些功能,用系统自带的键盘设置已经做不到了,需要神器『Karabiner』的帮助,这是mac上一款可以随意更改键盘映射的软件,默认的选项已经十分丰富,并且支持脚本编写,功能很强大。
安装完成后桌面上菜单栏会有一个正方形图标,点击后选择『pereference』
在『Change Key』默认的选项中找到『Change F1..F19 key & Functional Key』—『For PC keyboards』,然后勾选你想要的快捷键方式就可以(可以是直接吧f区映射成上述功能键,也可以通过fn + f区按键实现功能)
我们先不谈上文遗留下来的功能键代替手势问题, 先来看有些键盘的功能区是这个样子的。
毫无疑问,这些媒体和音量控制键在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系统中也能随心所欲的使用了~