美文网首页
WHY Karabiner? the KeyMapping Le

WHY Karabiner? the KeyMapping Le

作者: 王天畅 | 来源:发表于2018-12-23 08:22 被阅读0次

    WHY Karabiner? - from a programmer's perspective Mac改键神器

    By CHANG ALEX,GIthub Zhihu.

    CS17, CUHK

    背景:文字工作者总是会追求最大的输入效率,会对自己的键盘非常敏感。为了达到"Type as fast as you mind",在硬件上必然要为自己做好全面的支持。除了换一把趁手的键盘,有时候更改键盘的键位也是十分必要的。(回想起在win下使用ctrl lead快捷键的痛不欲生) 这里介绍一个macOS下一个很实用的更改键位软件Karabiner,该项目已经在Github上开源。

    一. 接着说为什么要改键

    其实刚才对于改键的原因说的不够清楚,在自己的习惯键位下待了很长时间后也意识不到现有键位可能会存在什么问题。我也是在长时间使用macOS标准键盘很长时间后才接触改键的,现列举标准macOS键盘键位的最大痛点(很多点也适用于Windows键盘)。

    MacBook Pro with TouchBar 无实体ESC键

    这一点在新模具的MBP推出之后在程序员圈子里就被骂的一塌糊涂,其实笔者一开始并没有觉得esc变成触控式的有什么不多,毕竟在日常情况下用esc可能也就是摸鱼看剧的时候退出全屏(逃)。直到后来接触了Vim,并尝试使用Vim作为主力编辑器,才深知实体esc的重要性。

    市面绝大多数键盘Control键位置诡异

    无法使用实体esc,其实也可以曲线救国使用 ^(control) + [ 来代替esc。然而市面上所有的键盘control无一例外的都会出现在左下角,这是一个很尴尬的位置,是一个违反人体工程学到极致的例子。每次敲击control都需要把小拇指曲折成一个很奇怪的形状,并且会让左手偏离主键区,极大影响输入的连贯性。对于Emacs用户,control + shift 的组合键更是家常便饭,无法想象不改键该如何流畅使用Emacs。

    3.几乎所有键盘delete/backspace位置都在主键区最右上角

    其实这一点并没有什么好喷的,毕竟几乎所有英语标准配列的键盘都是这个样子,但是请尝试一下在双手食指不离开FJ两个定位键(高效输入的重中之重)的条件下去按backspace,一般人的小指应该都没有那么长,这也直接导致我每次按backspace时都需要将自己的手腕水平顺时针旋转30度用无名指来敲击,再一次让手指离开主键区。

    所以到后来我的键盘成了这样子:

    二. 大救星

    键盘是个深坑,一开始大家都玩轴体,玩完轴体开始玩键帽,玩完键帽开始玩RGB,玩完RGB开始定制各种材质的外壳、定位板。然而有这么一款键盘被称作绝对的退烧利器——HHKB(并不适合大多数人)。一方面它以静电容轴独特的手感获得了众多追随者,另一方面它独特的配列和高昂的价格也让它具有了一种传奇的色彩,当然我们关注它的键盘配列(keyboard layout):

    忽略掉常见60%键盘都会做的function键二层映射,hhkb削掉了方向键(我并不喜欢)。最具特色的是将control移到了capslock位置,并且下移了delete。从功能键的位置可以看出,这把键盘的确是为了一部分程序员和文字工作者打造的(为什么说是一部分,毕竟也不是所有程序员都会一直呆在editor中,也有很多人是用ide的),而且键位极度偏向于Linux和macOS环境下的开发,因此把这套配列扒下来定是极好的。

    三. Use Karabiner

    macOS下是自带修饰键工具的,只不过功能比较基础,主要是为了win键盘的适配交换一下option, command 和control:

    可以看到,系统自带的修饰键还没有办法实现我们要的所有键的替换,这个时候,Karabiner出现了。

    下载好Karabiner后launchpad会出现两个app图标,我们需要用到的是Karabiner-Element。

    进入软件后在Simple Modification中就能进行简单的修改,修改的方式很简单,左栏是当前键,右栏是目标键,没有先后之分,不需要考虑object reference conflict(smirk

    可以针对每一把键盘进行单独修改,也可以通过建立新的profile对不同的键盘进行分类,例如我会把手上的键盘分成mac系自带键盘的和非mac系的外接键盘:   

    当更换键盘后profile的更换也可以直接在menu bar完成:

    还有一个很舒服的功能,即外接键盘时可以禁用内建键盘,主要是防止把外界键盘直接放在笔记本c面上用时压到内建键盘的键(话说在ins上带有hhkb标签的多半都是这样子用的),同样的,也可以对不同的键盘进行单独设置:

    另外还有对F1-F12功能的重定义,以及超级组合键(shift按下200ms后识别成shift+control)的各种改键功能。

    四. 文件备份

    其实网络上有很多关于Karabiner的介绍文章,但是几乎没有一个文章是提到了这个内容的。首先karabiner自带的只有将当前配置文件写入系统一个备份选项,对于多文件用户十分不友好,这意味着一旦karabiner出错或用户误删导致文件丢失,需要仔重新配置一遍,非常繁琐。这里介绍一下karabiner的源文件位置:

    /Users/<your user name here>/.config/karabiner/karabiner.json

    直接复制文本内容存档就好,直接建立git repo也是不错的选择。

    五. 其他平台

    For Windows: MapKeyboard

    For Linux: Xmodmap

    总结:

    纯键盘输入,不用鼠标甚至减少使用trackpad来提高自己在纯文字处理中的效率,集中注意力。

    通过形成自己的一套键位配置来保证双手食指始终位于FJ定位键,实现全盲打。

    MAKE THE BEST OF IT!

    相关文章

      网友评论

          本文标题:WHY Karabiner? the KeyMapping Le

          本文链接:https://www.haomeiwen.com/subject/bdxfxftx.html