Karabiner —— 自定义MacBook Air键盘

June 15, 2016
Tools

一直以来,我的MacBook Air的键盘有几个键总是莫名其妙不灵。。换了一次键盘,然而问 题依旧,并且,问题不好重现,仿佛它不高兴了就不灵了。。这给打字带来了极大的不爽。。 所以我的解决办法是外接键盘。。或者外接USB键盘,或者外接蓝牙键盘。然而,这便携性 就没有了。。还要经常担心我那个蓝牙键盘的支脚是不是压倒了原装键盘的某个功能键什么 的。。。所以就很蛋疼。。

所以为了解决蓝牙键盘经常压到Air的原装键盘的问题,我就在原装键盘上面垫上一本小书, 一定程度上解决了这个问题。。然后我就去淘宝搜有没有买专用的板子的啊。。:joy: :joy: 原来我的思路也蛮开阔的。。并没有,随手在Bing搜了一下,看到了V2EX的一个帖子 说如何关闭MacBook Air自带的键盘,诶?这倒是一个办法。然后我就开始折腾了:

下载了Karabiner这个软件。然后就开 始找怎么把某个组合键映射到经常失灵的U键。打开Karabiner的Preferences,看了一下 Change Key那个标签并没有什么头绪。然后看到Misc & Uninstall这个标签里面有一个 Custom Setting

Karabiner Preferences

绝壁八成是这个了。。然后在Karabiner的官网里面的Documents里面找到了这个文档: private.xml Reference Manual照着加 了下面的配置:

  <item>
    <name>Change 'u' key to fn+v</name>
    <identifier>private.make_u_work</identifier>
    <autogen>__KeyToKey__ 
      KeyCode::V, ModifierFlag::FN,
      KeyCode::U
    </autogen>
  </item>

然后在Karabiner Preferences的Change Key里面就就可以看到我刚才加的选项了,选择 它,点Reload XML,然后就可以用fn+v的组合键代替u这个键了。(因为VU长得比较像。。。 :joy: :joy: ) 完美!

另外一个经常不灵的键就是(这个键,它的位置就是9所在的键。因为6和9比较像……所以 我就把fn+6映射成了9。。同样的做法。:smile: :smiley:

  <item>
    <name>Change '9' key to fn+6</name>
    <identifier>private.make_9_work</identifier>
    <autogen>__KeyToKey__ 
      KeyCode::6, ModifierFlag::FN,
      KeyCode::9
    </autogen>
  </item>

哦,对了,上面的配置里面的autogen里面的KeyCode可以在这里 KeyCode 找到。

终于可以摆脱外接键盘了。。尤其不在桌子前面的时候。。 :joy: :joy:

搞定,收工。 :expressionless:


我发现上面的配置在输入左右小括号的时候并不方便,所以。我就把 fn+[映射成9,把fn+[映射成0。这样就方便多了。

  <item>
    <name>Change '(' key to fn+BRACKET_LEFT</name>
    <identifier>private.brace_left</identifier>
    <autogen>__KeyToKey__ 
      KeyCode::BRACKET_LEFT, ModifierFlag::FN,
      KeyCode::9
    </autogen>
  </item>

  <item>
    <name>Change ')' key to fn+BRACKET_RIGHT</name>
    <identifier>private.brace_right</identifier>
    <autogen>__KeyToKey__ 
      KeyCode::BRACKET_RIGHT, ModifierFlag::FN,
      KeyCode::0
    </autogen>
  </item>

然而这样还是不够方便,因为我如果想要输入(或者),那么我就要按下3个键,这,显然很不爽。所以我 就稍微改进了一下:

  <item>
    <name>Change '(' key to fn+BRACKET_LEFT</name>
    <identifier>private.brace_left</identifier>
    <autogen>__KeyToKey__ 
      KeyCode::BRACKET_LEFT, ModifierFlag::FN,
      KeyCode::9, ModifierFlag::SHIFT_L
    </autogen>
  </item>

  <item>
    <name>Change ')' key to fn+BRACKET_RIGHT</name>
    <identifier>private.brace_right</identifier>
    <autogen>__KeyToKey__ 
      KeyCode::BRACKET_RIGHT, ModifierFlag::FN,
      KeyCode::0, ModifierFlag::SHIFT_L
    </autogen>
  </item>

这样,我就可以只按两个键,和原来的Shift + 9Shift + 0就没什么区别了:我现在把fn+[设置 成了输入(,把fn+]设置成了输入)

另外,我原来把fn+6设置成输入9,然而输入的时候其实并不那么方便。所以,我就又 修改了一下:

  <item>
    <name>Change '9' key to fn+F9</name>
    <identifier>private.make_9_work_by_F9</identifier>
    <autogen>__KeyToKey__ 
      KeyCode::F9, ModifierFlag::FN,
      KeyCode::9
    </autogen>
  </item>

因为F9距离9比较近,所以我就把fn+F9设置成了输入9,这样就方便多了 :joy:

comments powered by Disqus