客制化机械键盘最大的好处就是布局可以随心定制,这一点在方向键处理上绝对是解决了我的使用痛点,详情可见 macOS下玩转机械键盘总结——硬件篇 之第四阶段键位功能调整。
但仅在板级上做定制还不够,macOS下有一些外接键盘的坑依然需要软件手段来填:
- F1~F12功能键与控制功能键的协调;
- 组合键的定制。
macOS在处理Function Key上是优先将mission control、launchpad、音量加减等控制功能置于键盘布局的顶层,而真正的F1~F12信号需要加按macOS下的fn键才能实现。而对于机械键盘而言,其Fn键只是单纯的板级功能层切换键,不对系统输出,而且根本就不是macOS下的功能键,所以那些mission control之类的控制功能就无法直接在外接键盘上实现。
好在我们有Karabiner-Elements,前身是KeyRemap4MacBook。原本做得非常成熟好用,脚本编写也形成定式,结果在macOS 10.12上不得不全盘重写,用户配置文件也变成了.json。好在经过了两年打磨,终于基本追上了之前的版本。
先解决 1. F1~F12:
直接在FunctionKeys里添加即可实现原生控制功能:
原本的F1~F12怎么办?我尝试过很多曲线救国的方案,想利用机械键盘的Fn在Fn1层产生,但折腾了一圈最终还是回归到mac下的传统用法,在键盘上设置insert键,在Karabiner中将insert映射给fn:
这样就可以得到mac原生键盘上所有需要通过按fn才能出现的键信号,包括F1~F12、del等等。
再来解决 2. 组合键的定制:
这和个人使用需求有关,现举一例说明。
由于平时经常和文档、网页等白底黑字的东西打交道,时间长了眼睛疼。mac下又不好搞什么全局绿色护眼模式,系统或flux上搞的黄屏模式又太丑了。想来想去,最佳的办法应该是直接反色:
macOS提供系统级的全局反色,在辅助功能里,可为其设置一个快捷键,我选的是ctrl+shift+8:
接下来就可以在karabiner.jason里面将键盘上的某一个按键(我选的是完全不用的PrtScr键)配置一个”complex_modifications“,具体方法可见官方manual。
找到~/.config/karabiner/assets/目录,在karabiner.json文件中 profiles下 添加如下代码:
"complex_modifications"
再想反色或恢复的时候一键PrtScr就OK了,不必费劲地再去按三个键了。
客制化机械键盘还支持板级宏命令,比如按某一个按键后,直接输出一串字符。很多人喜欢用这个功能来免去亲手输密码,不过个人觉得安全性略差。暂时没折腾宏。等以后有需要或有想法了再搞吧。
欢迎交流玩键盘的心得。