上学的时候一直都使用笔记本键盘,后来工作之后开始大量使用台式机,而且 Macbook 的键盘还变成了 Touchbar + Butterfly 键的无敌难用组合,于是就渐渐开始关注一些机械键盘。特别是在今年开始尝试了许多不同的键盘,到现在感觉进入了一个定制键盘的大坑,不过借由组装键盘的机会也开始对比 CS 更底层的东西(电路之类的)开始更感兴趣一些了。

对于定制键盘发烧友来说,可以定制的地方简直是太多了,到后面就是键盘 case 的形状设计对按键声音的回声的影响也都作为各种因素考虑进来,可以算是相当走火入魔的境界了。对于普通人来说的话,差别最大的因素应该主要是键盘的布局和键轴的选择,可能再加上键盘帽的选择。

键盘布局

键盘布局在 wikipedia 上有如下这么一个直观的图例。全图就是最常见的全尺寸键盘布局,这是 ANSI 布局,美国比较常见,国内似乎也主要是这种布局,但是在日本和欧洲会见到稍微不一样的布局,比如可能回车键是一个大的回转形方块按键。这个布局有一个最大的问题就是非常不对称,特别是如果你把左右手食指对应的 f 和 j 键这里放在你身体的正中央的话,你的右边会有很大一块空间被占用了,如果你是右撇子的话,鼠标就会需要放在右边很远的地方,所以在鼠标和键盘切换的时候就会非常费劲。

所以有各种其他布局的尝试。比较好玩的是把数字键区整个放到左边的设计,不过如果是经常使用数字键区的人来说可能并不一定会喜欢让它在左边(除非是左撇子,但是那样鼠标也要放在左边),对于不经常使用数字键区的人来说可能宁愿直接不要它。也许会计之类的需要使用大量数字的职业会使用比较多,反正我是从学会用电脑以来从来没有按过那个区域的按键。

下图所示的去掉数字键区之后剩下的白色和浅灰色的键的 80% 布局就是除了全尺寸之外最流行的一个布局,通常又叫做 TKL,也就是 Tenkeyless 布局。为什么明明少了不止 10 个键却叫这个名字?因为数字键区整个有一个名字叫做 tenkey

TKL 是一个比较好的折中布局,也没有偏离标准太远,所以在市面上能直接买到的键盘里也是一个比较常见的布局,不过仔细看看的话其实方向键上面的一些键也是几乎不太会用到的。像 Home、End 之类的键通常也有其他快捷键可以代替。于是在美观和鼠标的距离上追求极致的人们开始继续减少键盘上的按键。上图中 60% 的布局就是只有白色按键的部分。这个布局在定制键盘爱好者里深受喜爱的一个主要原因是它虽然小巧但是有很“符合标准”,这在选择键盘帽的时候会成为一个重要考量因素,因为键盘帽通常是成套生产的,哪个键是怎样的尺寸,会被放在哪一行(我以前并没有注意到大部分键盘帽每一行的形状是不一样的),生产商通常会根据某一些已有的标准来生产,所以如果是使用跟标准相差很远的布局,在找合适的键盘帽的时候就会比较痛苦。比如下图的白色键盘,它的右 shift 键的长度就和标准的 ANSI 布局里的不一样。

但是 60% 布局因为去掉了太多的键,也有诸多不便的地方,一个功能键行没有了,主要是 Esc 键没有了。常见的解决方案是把“~”键换成 Esc 键,或者也有把 Caps Lock 换成 Esc 的,当然这样问题又变成了“~”键要放在哪里。另一个很大的问题是方向键没有了。60% 和其他类似的衍生布局(例如 HHKB 的布局)的解决方案都是使用 Fn 键,按住 Fn 键的时候键盘进入另一个 Layer,每个键可以 assign 新的功能,例如经常玩 PC 游戏的人或者 Vim 用户可能会在 Fn Layer 里把 WASD 或 HJKL 变成方向键。取决于 Fn 键的位置,这样可能也不是大问题,但是在你需要按其他和方向键有关的快捷键(例如 Shift + 方向键选择文本,或者 Cmd + 方向键以词为单位移动之类的)的时候就会变得特别复杂了。所以最近几年所谓的 65% 布局的键盘逐渐变得很流行。如下图所示,65% 布局通常只比 60% 多了一列的空间,然后通过减少右下角的 modifer 键的数量(反正我是从来没有用过所谓的 Menu 键)并减小右边 Shift 键的长度,就可以有空间放方向键了。其实 Macbook Pro 的笔记本键盘布局也是类似,不过它使用了小号的按钮来给方向键用,所以更节省空间一些。此外,多出来的一列还有多余的空间放三到四个键,于是也可以放 Home、End 之类的稍微常用一点的键,以及由于 Esc 被占用掉的“~”键等等。

不过 65% 布局和 60% 布局不同的是,它并不是一个“标准”布局,因为它修改了一部分键的大小,然后加了一些非标准位置的键,所以这里如何修改,新加的键放在哪里,放几个之类的就每个设计师都有自己的想法,于是出现很多互相不一样的变种。所以键帽制造商在选择哪些形状和布局的键盘能够得到最大兼容性的时候就需要做更多取舍,用户在找键帽的时候也就更麻烦一些。

如果跳出标准键盘布局的话,种类就非常多了。一个很常见的大类是 split 键盘,通常也称为人体工学键盘,就是把左边和右边分开,这样让你在打字的时候手可以以比较自然的姿势放置,而不是并拢放在中间。另一类则是 ortho linear 布局,不知道中文应该怎么翻译,线性正交键盘?不如直接叫格子键盘好了。和标准布局的主要区别一个是没有了超大的空格键,身强力壮的大拇指现在有了更多的用处,二是各行的按键没有错开。

可能你有听过“标准”键盘布局使用 QWER 这样的按键排布方式是为了让打字员打字速度下降以避免把早期的打字机卡主的设计,所以其实并不是最优的按键布局。所以后来发展出了诸如 DovarakColemak 之类的更优的布局,通过把跟常用的键放在更容易按到的地方让你打字效率更高。这里我不确定是否按键错开与不错开是否有一个类似的故事,但是如果不错开的话,在定制键盘的过程中很多问题都会很简化,比如键帽的大小通常就是一个单位或者两个单位,不会出现各种奇怪的长度,电路矩阵也是一个规则的方阵不会歪来歪去等等。

另外,虽然也有很大的方格键盘,但是最常见的还是 4x12 (例如 PlanckPlaidNiu Mini)或者 5x12 (例如 Preonic)之类的小号键盘。对比一下标准键盘就会发现,有很多键都没有了,除了加减等号之类的符号之外,在 4x12 上甚至连数字键都没有了。似乎是不太能正常使用的键盘,但是其实(我觉得)是比 60% 键盘更易用的。因为 60% 的一大限制是为了满足兼容性,而格子键盘没有这个包袱,所以虽然原理上和 60% 键盘一样是通过 layer 来实现不存在的键,但是实际操作性却更强一些。具体来讲,这种小的格子键盘一般至少会有两个额外的 layer,通过空格键两边的两个键(lower 和 raise)来触发。由于空格键变小了很多,这两个 layer trigger 可以在几乎不动手的姿势的情况下就能轻松按到。

实际上格子键盘强调的一个重点就是尽量不要移动手的位置,去掉数字键排也是出于这个考虑,因为对于普通大小的手来说,基本上主要是能够够到原本行(ASDF 这一行)的上面和下面各一行,再加上最下面一行主要由大拇指操作的行,一共四行刚刚好,而数字键和其他缺失的符号则可以通过两个 layer 来实现。确实这样能够实现几乎不移动手,但是带来的 trade off 就是需要按的键更多,怎样是更优的其实很难讲清楚。所以另一个很受欢迎的格子布局是 5x12,再加上顶上一排数字键。不过我觉得到了这种小键盘的领域,其实和怎样是最优的相比,好玩也许是更多的因素吧?

下面是我目前使用的键盘布局,红色和蓝色的两个 layer 分别可以触发某些键上左下和右上用对应颜色表明的键。除此之外还有两个特殊的绿色背景的键,他们是所谓的 mod tap 键,在按住的时候充当一个 modifier(左边 ctrl 和右边 shift),但是按下立刻放开的话,则会被解释为另外的键(Esc 和回车)。

事实上这样的小键盘大概每个人都会有自己的布局,这样可能在选择键帽的时候有点麻烦,有许多人会直接选择每一行形状一样的键盘帽或者甚至是空白无刻键盘帽。这是我自己觉得比较折中的布局,和默认的布局也不太一样。有些比较 crazy 一点的布局可能会把 modifer 放在中间,增加 navigation layer 把 HJKL 变成方向键,还有直接通过 mod tap 类似的方式把一些普通的字母按键变成 modifier 或者 layer 切换的按键的。总之定制键盘除了硬件可定制性很强之外,软件或者固件方面可定制性通常也非常强,定制键盘很常用的固件 qmk 具有非常强的可定制性,刚才提到的那些都是 qmk 的标准功能,可以直接通过在线 UI 配置工具进行配置,如果需要的话,还可以直接进行编程进行灵活性最大的定制。例如有些人做很复杂的 tap dancing,按键按一下、按两下、长按、按一下之后长按之类的都可以实现不一样的功能。还有一个很厉害的功能叫做 auto shift,使用方法是按一下 a 键输出 a,长按(时间长短可以自己配置)一下则输出 shift+a,也就是 A,其他的键类推,这样就再也不用手工按 shift 了,需要配置的 layer 也少了许多。我稍微尝试了一下,不是很习惯,因为为了实现这个功能,出发按键需要由原来的“按下的时候触发”变成“释放的时候触发”,这样 QMK 固件才能分清你是长按还是短按。这样细微的区别原本应该问题不大,我其实不知道是否大部分人都会察觉到,但是我自己是能明显察觉到变化的,即使敲击速度飞快,也能感觉到细微的违和感,特别是存在对比的时候:比如像空格键这种不存在 shift 功能的,默认情况下依然是“按下的时候触发”,于是打字(英文)的时候就有一种词卡顿着出来但是空格一下子打出来了的感觉。

还有一些人尝试实现所谓的 chording,就是像在钢琴上弹和弦一样输入,一次同时按下几个键还实现不同的功能。事实上速记员用的速记键盘就是这样的输入方式。虽然听起来很简单,但是实现起来其实有蛮多细节的,因为“同时按下”其实是一个比较模糊的定义,人手很难做到真正同时按下,并且在打字很快的时候前后的按键可能会有 overlap,在固件代码里如何健壮地实现这些功能其实也是比较有意思的具体工程问题的。

如果你想尝试一下格子键盘的话,我的经验是字母键区可能一个下午就能习惯过来,因为原本标准的错位键盘上面两排字幕键其实错开的距离很小,跟格子键盘差别不大,所以主要是要适应最下面一排键。至于数字键和符号键,由于要使用 layer,所以刚开始会反应速度比较慢,大概一两周可能可以适应过来(本篇博客就是用格子键盘打出来的,其实是为了测试键盘才特地码了这么多字)。另一个问题是,如果用习惯了格子键盘再回去用标准键盘是不是就完全不会用了?我自己目前有限的经验来看似乎不会,证据是你能同时用手机键盘和电脑键盘打字,互不影响,当然这两者是差别很大的,这里两个不同的键盘布局因为差别比较小,所以可能会互相影响的概率比较大,如果这样可以尝试把格子键盘的布局索性改得更彻底一些,例如使用 DovarakColemak 或者 Colemak Mod-DH 字母布局,增加两者的区别。不过这样除了键盘帽更难找之外,如果你是 VIM 用户可能会比较难办,因为 HJKL 现在散落在不同的地方了。但总之我自己的感觉是用习惯了某一种布局之后立刻切换到另一种,一开始会老是按错,但是大概一两分钟就能再调整过来,所以除非你常年荒废某一种键盘布局不使用,否则应该问题不大。

键轴

键轴就是键帽下面实现案件的那个机械小玩意(虽然键轴不一定是通过机械的方式来实现的),最有名的键轴厂商应该要数来自德国的 Cherry MX 了(下图盗自他们的官网),当然 Cherry MX 的键轴由于太过主流,在定制键盘爱好者社群中反而不太常见,大家喜欢用各种更加小众的键轴,像什么 Holy Panda、NK Cream、Box Royal 之类的。具体什么键轴用着顺手,每个人应该都会有自己的偏好,我自己在尝试过许多选项之后发现自己偏好线性轴,并且喜欢非常轻的轴(像 Cherry MX 系列最轻的红轴对我来说都有点重了)。具体来说我自己目前最喜欢的的轴是宁芝的 Niz Plum Atom 68 那一系列键盘里的 35 克静电容键轴。静电容轴和机械轴的实现方式不一样,但是从用户的角度来说其实不用太纠结其原理(当然可能 PCB 版和键帽之类的接口会不一样),静电容轴最典型的例子应该是 hhkbRealForce 了。我有一把 RealForce 的静音 TKL 键盘,手感确实很棒,不过我觉得 45 克用久了还是会有点手指累。宁芝的静电容轴算是一个山寨产品,但是它做的 35 克静电容轴我觉得按起来其实更舒服,当然这都是个人喜好了,很多人不喜欢太轻的按键,因为可能会比较容易误按。

机械键盘有一个刻板印象就是自己按得爽,但是周围的人都要被吵死。其实很响的键轴我感觉也能把自己吵死,不过还好这几年静音键轴受到越来越多的关注,其实选对键轴的话,噪音可以说完全不是问题。首先如果选择线性轴的话,本身声音就不会很响了,其次很多键轴现在都提供静音版本,通常是在键轴触底的地方加上软一点的材料来减震。比如宁芝的静电容键轴我就觉得相当安静,如果是要和 Cherry MX 接口兼容的话,Cherry MX 之家也有静音红轴,其实是更安静的。Gateron 也有一个静音红轴,基本上和 Cherry MX 的版本参数一样,但是 somehow 按起来更轻一些,所以我也更喜欢。此外,Logitech 的 Romer G 系列的键轴我也挺喜欢的,不过这些键轴和常用的 PCB 版和键帽都不兼容,所以比较难用在定制键盘上(可能需要自己设计 PCB 板子或者手工连线)。

事实上现在大家在追求键盘的声音上感觉已经到了一个比较偏执的地步,在原厂各种键轴之上还出现了各种重新组合和定制的键轴,并且大家还会将键轴打开涂上润滑油。当然目的并不只是让按键声音尽量小,而是让他听着更“悦耳”。而键盘的按键声除了键轴本身的因素之外,键帽的形状、材料、高度也会有影响,同时声音会通过键盘固定板或者 PCB 板在键盘内部传播并形成回声之类的,所以现在在键盘内部加装隔音棉垫片也是非常常见的,与此同时键盘底座和外壳的材料甚至是形状设计也都成为影响 acoustics 的重要因素(听起来就好像是在设计歌剧院的建筑结构一样)。如果平时没有因为自己键盘的按键音而烦恼的话,这其实不会是一个大问题,但是如果把一个声音很好的键盘和一个普通的键盘放在一起对比的话,差别还是挺明显的。所以现在 Youtube 上与键盘相关的一大类非常流行的视频其实是 sound test ASMR,基本上就是听一个人用他的键盘打字的声音

键帽

键帽是机械键盘里最容易定制的一个部分了,用一个 key cap puller 很容易就能把键帽拔出来,然后装上其他的键帽。不过其实里面的坑也不少。我以前以为不同的键帽套装只是颜色不同的方形小帽,结果换过一次键帽才发现原来键帽的形状设计也有很多讲究。大部分键盘的底座都会有一个倾斜度,这样让打字更容易一些,特别是对于上面一排的数字键甚至是更远的功能键来说,如果有一个抬起的角度,就更容易按到。类似的,键帽的设计通常也有类似的考量,首先键帽会做出一个倾斜度,以平衡底座的倾斜度,然后靠近上方行的键帽会做得更高,也是让你更容易按到。下面这个 keyboard.university 网站上的图暂时了几个常见的的键帽 profile。一般我们在市面上买到的键盘的键帽都是 Cherry 或者 OEM profile 的。

有些 profile 非常高(像 SA),还有一些键帽(比如 MT3)顶端是有凹陷的,手指放在上面感觉像是放在窝里,感觉很舒服。总之各种设计有的是为了好看(复古),有的是为了让按键更舒服,但是其实什么更好看,什么更舒服,其实都是非常主观的了(下图为 MelGeek 的 MG Profile 键帽)。

总之不同行形状不同给定制键盘的键盘帽选购带来了一定的麻烦,因为如果你选择比较非标准的键盘布局的话,你想要的键帽套装可能并不一定有你想要的长度的键(例如短的 shift),即使有,如果那个键帽不是在合适的行上,也会出现兼容性问题(强行装上会很难看或者很难用),比如如果你想尝试非标准的 DovarakColemak 或者 Colemak Mod-DH 字母布局,就会陷入这样的困境。由于这样的原因,有一些所有行形状都一样的键帽 profile(例如之前的图中展示的 DSA)在定制键盘爱好者社区里也非常流行,甚至更进一步有很多空白无刻的 DSA 键帽,兼容性就更佳了。当然如果倾斜角度的键帽用习惯了用这种平坦的键帽可能会很不习惯,比如上面行的键会觉得很远,经常会按不到,或者如果底座是倾斜的,整个键帽也会有一个斜面,手指会感觉在上面站不住。不过这些问题可能花一点时间也会适应下来。

除此之外还有一个我以前从来没有注意到过的细节就是:键盘上 F 和 J 两个食指所按的键上分别有一个凸起的小横条,帮助你不用低头看就能找到并回归手的原始键位。在我尝试了一次没有这两个小凸起的键帽之后才意识到自己潜意识里有多么依赖这个东西。然而市面上的键帽并不一定都会有这样的小凸起,有的键帽套装会用一个(非常难以摸到的)小圆点代替小横条,还有的会将这两个键的表面做一个比其他键更大的凹陷,甚至还有的根本不加以区分。所以取决于你自己的习惯,这可能是非常需要注意的一个点。

最后需要值得一提的是,如果不是完全的格子键盘布局的话,键盘上除了键轴之外通常还会有一个叫做 stablizer 的东西,用在比较大的键上。例如空格键长度远远超过一个字母键,但是它下面仍然只有一个(和字母键一样大小的)键轴,如果你按键按在两边的话,空格键就会像跷跷板一样翘起来,而 stablizer 就是一个简单的稳定机制,让你不管在哪个位置按下键都是差不多的。在标准键盘布局下除了空格之外,backspace、shift 之类的键通常都会使用 stablizer。而 stablizer 虽然实现原理都差不多,但是从具体细节来讲有好几种实现,根据固定位置不同可以分为 PCB Mount 和 Plate Mount。如果是 PCB Mount 的 stablizer 的话,其实看起来就跟一个多余的键轴差不多,但是这里之所以提到这个是因为如果你的键盘使用的是 Plate Mount 的 stablizer 的话,那么在拆卸和安装键帽的时候,每次都需要重新组装这几个 stablizer,虽然也不是特别困难,但是小玩意拿捏起来也不是那么顺手,总之比较麻烦,如果在 build 键盘的时候有得选择的话,尽量还是选 PCB Mount 的版本好了。

定制键盘

总之我现在算是入了定制键盘的坑,目前热衷于小型格子键盘,4x12 和带数字键的 5x12 我都有尝试,似乎还是稍微更偏好 4x12 一些。要说真的什么样的键盘能让我工作效率更高的话,我觉得市面上能买到的一些 65% 的键盘(例如宁芝 Plum Atom68)甚至 TKL 键盘都完全能够胜任了,之后的东西应该完全进入一种兴趣领域了。可能你永远也不会找到最好用的键盘,就好像你永远也找不到最好用的编程字体一样。但是作为兴趣的话,过程就重于目的了。键盘这个坑让我现在对电子、电路、固件编程,乃至于 CAD 建模、3D 打印之类的都提起了兴趣,而且现在的定制键盘 kit 似乎很少有无线连接的选项,这感觉也是一个很多坑但是应该会学到很多东西的地方。

当然定制键盘这个兴趣也有它的不好的地方,首先一个是它还是会花不少钱的,你可能会发现一套键盘帽就会比市面上能买到的比较好的成品机械键盘要贵了,当然这和诸如相机镜头之类的败家爱好还是没法比的,而且工作以后领了工资用来丰富自己的课余生活也是无可厚非啦。但是其实更让人头疼的是其实大部分东西你都是买不到的。比如下面是 Novelkeys.xyz 的一个页面截图。

如果东西经常都处于缺货状态,那是不是说明这是一个供小于求的市场,那为什么市场没有进行自动调整呢?我觉得可能因为定制键盘总体来说还是一个相对小众的社区,不论是键盘 DIY kit、PCB 板子、外壳还是键盘帽,很多都是有设计能力的爱好者个人做出来的。因为是个人生产,并不会像大型商家那样囤很多货然后慢慢卖,所以通常通过所谓 Group Buy 的形式来支持生产。大概就是大家集资,收集到了足够的资金之后再根据订单数量去进行生产,通常不会生产多余或者只生产很少的多余产品。所以基本上 popular 的东西现货都是一下子就被抢光了,所以只能依靠 group buy,而 group buy 不知道是一直就这样还是因为受到 COVID 影响,等待时间非常长,例如很多键帽的 group buy 的预计送货时间是十个月以后,并且还有可能会有各种预期之外的延迟,比如 Susuwatari MT3 键帽有不少人似乎等了两年才拿到。总之感觉就是一个非常坑的爱好,哈哈……

Ortho Linear 键盘

如果你也有兴趣尝试一下 Ortho Linear 键盘,但是又不是很有兴趣自己组装或者漫长地等待各种部件到货的话,台湾的 ZSA 提供了一个叫做 Planck EZ 的已经组装好的键盘,并且号称“永远不缺货”,但它其实是在你下了订单之后再生产的,不过似乎一般一周之内也能做好并快递运送到全球。虽然塑料底座摸起来材质没有很厉害,而且自带的键帽手感不是很润滑,但是确实是最容易 access 到的 4x12 格子布局(其实空格占了两个键)键盘了,并且可定制性也不错,键轴是可热拔插的(不需要动用焊锡就可以换不同键轴),固件也完整支持 QMK,还有图形界面定制工具。除了价格偏贵一点之外,算是很不错的选择。

如果想要便宜一点的选项或者是有自己组装的兴趣的话,最常见的 4x12 选项是 Planck,不过有可能需要等待很久的 pre-order 或者干没货。另一个选择是一些开源的键盘,例如 Plaid,即使 kit 没货,理论上你可以通过开源的 PCB 自己去 JLCPCB 之类的网站上打印 PCB,然后如果你熟悉基本的电子元件采购的话,可以自己根据元件列表采购二极管、控制器之类的,然后自己把键盘组装起来。