Caps Lock to Hyper key

Caps Lock to Hyper key

早就想这么干了,把 Macbook 上的 Caps Lock 改成一个「Hyper」键。

背景

Caps Lock,大写锁定键,现实中使用到的频率相当小(至少对于我来说是这样),但它却占用了一个风水很不错的位置,实在是浪费。Chromebook 把它直接换成了一个搜索键。

Chromebook 上的搜索键

替换方法

  1. 首先,安装 PCKeyboardHack Seil 这个软件[1],通过它我们可以把 Caps Lock 键的功能换成一个键盘上不存在的按键,我这里换成了 F19,keycode 为 80。

    PCKeyboardHack

  2. 到 「System Preferences」-> 「Keyboard」 -> 「Modifier Keys...」里面把 Caps Lock 对应的动作设置成 「No Action」。

    Modifier Keys

    这时,Caps Lock 已经失去大写锁定功能了,再按它时,大写提示灯是不会亮的了。

  3. 只是替换成一个 F19 功能键显然还是不够给力的,我们要赋予它更多的功能。这就需要安装和 PCKeyboardHack 同一家的另一个软件 KeyRemap4MacBook [2]。这个软件提供了很多预置的键位修改选项,有兴趣的可以自己折腾,但为了给我的 Hyper 键添加功能,我们需要的是它的自定义设置功能。

    在 「Misc & Uninstall」 标签中有个 「Open private.xml」 的按钮,点击它会打开包含了 private.xml 的文件夹,我们要做的就是修改这个文件,加入自己的配置,我目前的配置放到了 gist 上

  4. 保存后,回到 KeyRemap4MacBook 的 「Change Key」 标签中,点击一下 「ReloadXML」 这个按钮,你会发现 remapping 下面新的选项出现在最顶部,把它们勾选上,Hyper 键就诞生了!

    KeyRemap4MacBook

功能

这个 private.xml 实现了以下几个功能:

  • 只按 Hyper 时,Hyper = F19,我把它设置成了调出 Alfred,毕竟是我用得最多的软件了[3]

  • 按下 Hyper 同时也按下其它键时,Hyper = Control + Shift + Option + Command,此时是作为修饰键的,让它可以配合别的键作为热键使用。

  • Hyper + Space = Enter,这个嘛……右手懒得按回车时用。

  • Hyper + J/K/H/L = 下/上/左/右,懒得去按方向键时用。

  • Hyper + Tab = Caps Lock,有时可能还是会用到大写锁定的。

此外,我又利用了下 Alfred 的 Hotkeys 功能,把常用的几个软件都放到了几个顺手的键位上:

  • Hyper + F = Finder

  • Hyper + D = 下载文件夹

  • Hyper + G = Google Chrome

  • Hyper + V = iTerm

  • Hyper + O = Omnifocus

  • Hyper + P = Papers2

  • Hyper + R = Reeder

  • Hyper + S = Sparrow

  • Hyper + E = Sublime Text 2

  • Hyper + T = Tweetbot

Alfred 的 Hotkeys 功能有一个很不错的设定就是「Hide Application if already visible」,勾选它之后就可以用对应的热键来很方便的显示/隐藏相应的程序了,同时这样也比用 Command + Tab 来切换程序要快得多。

Alfred Hotkeys:Hyper 键设置

看到这里相信各位已经明白了,Hyper 键在 Control、Shift、Option、Command 之外又提供了另外一个很顺手的修饰键,这样一下就多出了很多可用的热键位了。

此外 KeyRemap4MacBook 和 PCKeyboardHack 可以折腾东西还很多,可以看看官方的文档以及别人的折腾[4]


  1. 安装后需要重启系统。现已改名为 Seil。 ↩︎

  2. 同样需要重启系统。 ↩︎

  3. 我的 private.xml 是基于 Brett 的版本修改的,Brett 把这一项设置成了 ESC 键,经常 vim 的也不失为一个好选择。 ↩︎

  4. A Modern Space Cadet / A useful Caps Lock key ↩︎