觊觎ErgoDox[1]可编程键盘很久了,但新公司不让用自己的键盘,之前一直用的HHKB已经在家里吃灰了好一阵,忍了忍还是没有剁手。
偶然的机会看到网上有一个叫Hasu的大佬,搞了一块HHKB定制芯片[2],芯片基于Atmel AVR[3],固件也是大佬自己搞的开源tmk_keyboard[4],装上之后有十分丰富的可定制操作,可以完美的让这块小键盘实现正常布局的方向键,数字小键盘等大键盘才有的功能。我对这种东西完全没有抵抗力,赶紧搞了一块回来。
装上这块芯片之后,通过改代码和刷固件,可以达成以下两个我觉得比较实用的功能:
首先是同一个键位,单击和长按实现不同功能。很多键在绝大多数情况下单击是没有用的,只有按住才有用,比如SHIFT。相反的,ESC就是单击有用,但长按一般没有什么用。如果能够把单击SHIFT重新做成比较常用的键位,比如左括号(,就能减少手指移动。
其次是任意键位可变为功能键。HHKB自带了一个Fn键,F1~F12就是通过按住Fn加1~0-=来输入的。这个固件提供了最多三十二个不同的自定义功能键,每个功能键自带一个键盘布局(Layer),就是说经过修改之后,按住Fn后按键盘上的每一个键都可以用代码实现想要的功能。
这两个功能结合起来已经能搞出非常不错的定制效果了。比如我试着做了一个按住ESC把右手区做成数字小键盘的改动,用习惯之后特别爽。当然这块板子的潜力还很大,支持录制宏,可以玩出特别多花儿。参考文档:
https://github.com/tmk/tmk_keyboard/blob/master/N/doc/keymap.mdgithub.com贴一下我自己魔改之后的键盘布局:
默认键盘布局,带了几个特殊键:
Fn0,HHKB自带的Fn键,按下进入 Layer 1,默认Fn布局
Fn1,单击ESC,按下进入 Layer 2,小键盘模式
Fn3,单击输入(,按下是普通 Shift
Fn4,单击输入;,按下进入 Layer3,vim移动模式
按下Fn的键位我稍微调整了一下,用左手最顺手的wasd来做上下左右,音量键和媒体控制键往右靠,这样就可以右手单手操作了。
数字小键盘打大段数字和电话号码不要太爽。
经典的vim方向键和复制粘贴键位。
最后膜一哈大佬Hasu[5] Orz
欢迎感兴趣的小伙伴跟我一起膜。
参考
- ^ErgoDox https://ergodox-ez.com/
- ^剁手网址 https://www.1upkeyboards.com/shop/controllers/hhkb-bluetooth-controller/
- ^Atmel AVR https://en.wikipedia.org/wiki/AVR_microcontrollers
- ^tmk_keyboard https://github.com/tmk/tmk_keyboard
- ^hasu https://github.com/tmk