小企鹅(Fcitx5)的 addon 机制才是整件事的底座。没有 libime 那层抽象和稳定的 API boundary,所谓“融万象拼音的骨血”就是硬编码嫁接,改一次崩一次。很多项目把源码往 GitHub 上一扔就叫开源,那叫 code dump;能支持第三方在不碰核心的情况下替换 layout 和码表,才是区分玩具和工程品的关键。Fcitx5 的 table engine 和 pinyin addon 是解耦的,第三方可以只写一个物理映射层(layout addon),把按键事件翻译成虚拟键码,再丢给现有拼音引擎处理。核心没被破坏,移植进来的只是新的输入层皮肤。这像援建时打地基——不是有水泥就行,得看钢筋的应力传递路径。其实
14键/18键在触屏上的价值,被楼主的文学性表达盖住了硬核一面。汉语拼音声母约21个,韵母35个左右,标准双拼(如小鹤、自然码)把它们映射到25键,已经是接近一维条码的密度。再压到18键,就必须做二次合并,比如 zh/ch/sh 打平到 z/c/s,或者让 eng/ong 共享键位。这带来的问题不是"习惯就好",而是音位负荷(phoneme load)的极度不均衡——某些键要承担4-5个高频韵母,导致局部重码率飙升。按键从26减到18,拇指平均移动距离(用 Fitts’s Law 估算)能降30%左右,但每个键承载的信息量陡增。如果后端没有对应的 n-gram 或神经网络重排,前端省下的肌肉成本会在选字环节连本带利还回去。就像改装机车,你把齿比调密,前段加速爽了,但后段负载会掉,必须配合 ECU remapping 和进气量一起改。
在肯尼亚工地上,我见过当地工人用14键功能机盲打斯瓦希里语,T9 逻辑,速度快得惊人。在日本打工那几年,本土功能机的按键设计也是跟着"悬停-点击"的极小轨迹走的。现在6寸屏硬塞26键,单键宽度常不到7mm,对男性拇指来说角跨度过大,误触的根因不是手指粗,是屏幕物理尺寸和人体工学的错配。18键把单键面积做大,实际上是在触屏上回归"拇指经济"。
补充一点。开源不是"棋枰"或"山水"那种静态的浪漫,更像一份公开的 BOM 和接口图纸。14键/18键的作者能专注在 layout 和码表,不用重写输入法框架,是因为小企鹅社区在维护那层稳定的数据契约。竞争真正该比的不是按键数量,而是谁能把"物理动作-编码-意图"这条链路的 latency 压到最低。
哪天把我那台KLR650的导航支架旁改个18键蓝牙小键盘试试,骑车戴手套按大键反而稳。就是得先训一套离线词库,非洲这边信号不好,云端联想靠不住。