首页 › weekly › 自组机械键盘的8件开源神器

从 PCB 到固件到改键:自己攒一把机械键盘的全套开源兵器

概述

前几轮我们挖过终端工具、自托管服务、AI Agent,这一轮换条完全不同的生产线——客制化机械键盘的完整开源工具链。这条线上没有大厂垄断:固件、键位编辑、PCB 自动布局、无线协议、系统级改键,每一环都由社区开源项目把守。8 个仓库串起来,正好是一条「画布局 → 画 PCB → 刷固件 → 调键位 → 系统层兜底」的流水线,从纯小白到想开键盘工作室的人都能找到自己的位置。客制化键盘本身就是一个成熟的付费市场(套件、轴体、定制 PCB 全都能卖钱),这些仓库既是玩具,也是生意的地基。

注:本文 Star 数据为写作时依据公开资料的量级估计,实时数字请以各仓库页面为准。


1. qmk/qmk_firmware | 约 1.9 万星 | 长期活跃

一句话定位:客制化键盘固件的事实标准,整个 DIY 键盘世界的「普通话」。

痛点很直接:你焊好一把键盘,键盘本身只是一堆微控制器和开关的裸电路,它需要一份固件来告诉电脑「这个键按下去是什么」。QMK 从老牌 TMK 项目发展而来,用 C 语言把这件事做成了配置化:你只需维护一份 keymap.c(或直接在网页上点),定义每一层的按键、组合键、宏,编译烧录即可。它内置了海量的现成键盘定义,主流客制化套件出厂几乎都标榜「支持 QMK」。不想配环境的 beginners 可以走官方在线 Configurator,在浏览器里点选键盘型号、拖拽键位、下载固件,一条龙零门槛。层(Layer)、Tap-Hold(轻点与长按区分)、Mod-Tap(修饰键复用)这些客制化键盘的招牌玩法,全是 QMK 教育出来的用户习惯。

2. zmkfirmware/zmk | 约 3 千+星 | 长期活跃

一句话定位:为无线分体键盘而生的固件,蓝牙低功耗时代的 QMK 替身。

QMK 出身于有线 USB 时代,蓝牙支持一直不是强项。ZMK 换了个底层重来:构建在 Zephyr RTOS 之上,天生面向低功耗蓝牙,一块小电池能撑几周,分体键盘左右手各一块 MCU 各自直连电脑——这是近两年无线分体键盘爆发的技术底座。它最聪明的设计是云端编译:把你的键位配置放进自己的 GitHub 仓库,用 GitHub Actions 在云端完成编译,下载 .uf2 文件拖进键盘就完成刷机,本地什么都不用装。这让「不会 C 语言」的玩家也能玩转固件级定制,社区里大量分体键盘(Ferris、Sofle 无线版等)的默认固件都是 ZMK。近年的新方向是运行时改键(不重刷固件直接改键位),无线键盘生态正快速向它聚拢。

3. vial-kb/vial | 约千级至 2 千星 | 长期活跃

一句话定位:插上键盘实时改键位的图形化工具,告别「改个键刷一遍固件」。

玩 QMK 的人都有过这种烦躁:想挪一个键,改代码、编译、烧录、拔插,五分钟没了。Vial 的解法是在固件里内置一小段通信协议,电脑上的 Vial 客户端(Qt 编写,跨平台)连接键盘后直接读取当前布局,图形界面里点两下就完成改键,立即生效、立即保存进键盘存储。它支持自动识别键盘的矩阵与层定义,还提供宏编辑、层可视化等 QMK 官方工具没有的体验。对键盘厂商来说,把产品刷成 Vial 兼容固件等于白送一个官方级配置软件,省掉自己开发上位机的成本——这也是很多中小键盘品牌直接「出厂即 Vial」的原因。对个人玩家,它是客制化键盘的「驱动面板」,装一次用三年。

4. jtroo/kanata | 约 4 千星量级 | 长期活跃

一句话定位:不刷固件的软件层改键引擎,把 QMK 的玩法搬进操作系统。

手里是把普通键盘甚至笔记本剪刀脚,又眼馋客制化键位的层与组合?Kanata 走软件路线:它作为常驻进程拦截系统键盘事件,用一份文本配置实现层、Tap-Hold、双功能键、宏等 QMK 同款玩法,相当于把固件逻辑搬到系统里跑。它是 kmonad 的精神续作,用 Rust 重写,Windows、macOS、Linux 全平台支持,键位配置跟着配置文件走——换电脑、换键盘,键位习惯无缝平移,这对多机党是刚需级特性。相比操作系统自带的改键(只能单键换位),Kanata 能表达「空格键单击是空格、长按是 Fn 层」这种逻辑;配合官方 GUI(KanataTCP 驱动的托盘工具)可实时预览与切换配置。程序员圈子里 Homestay 式的「Vim 手感全系统化」玩法,很多就是靠它实现。

5. rvaiya/keyd | 约 3 千星量级 | 长期活跃

一句话定位:一个 C 语言写成的极简改键守护进程,Linux 用户的钝刀快剪。

Kanata 全能但配置偏重,keyd 走的是另一个极端:整个项目就是一个极小的 C 程序,作为 Linux 守护进程常驻,资源占用几乎为零、延迟极低。配置文件短到离谱——十几行就能完成「Caps Lock 映射为 Esc/超键、外接键盘与笔记本键盘各自不同布局、特定设备整键重定义」。它直接在输入子系统层面工作,不依赖 X11 或 Wayland 的具体协议,因此在 Wayland 早已普及、大量老改键工具失灵的今天,keyd 反而成了 Linux 玩家的默认答案。典型玩法:把 iPad 键盘、蓝牙机械键盘、笔记本内建键盘用不同的配置文件分别接管,一台机器多种键位规则互不干扰。对小而美爱好者来说,这是「单一痛点、优雅解决」的教科书项目。

6. ergogen/ergogen | 约 1-2 千星 | 社区维护

一句话定位:用一段配置生成一把分体键盘的 PCB 与外壳,键盘设计的「编译器」。

这是整条流水线上最具生产资料属性的一环。ErgoGen 是一个 JavaScript 库(附在线版),你用 YAML 描述键盘的「元数据」:几个键、怎么排布、列间距多少、拇指簇怎么转角度,它就生成对应的 KiCad PCB 轮廓、封装定位点和外壳几何。改一个参数重新生成,传统上要拖几天的 PCB 布局变成秒级迭代——参数化设计的威力在分体键盘这种「异形但规则」的物体上发挥得淋漓尽致。社区里不少拿得出手的开源分体键盘,起源就是一个 ErgoGen 配置文件。它不直接输出可生产的成品 PCB,而是与 KiCad 工作流衔接:生成骨架后人工补走线,再交给下一个工具做细节。

7. adamws/kbplacer | 数百星 | 社区维护

一句话定位:KiCad 插件,读取键位布局 JSON 后自动摆放全部轴体和元件。

设计键盘 PCB 最枯燥的一步是「摆件」:几十上百颗按键开关、每键一颗二极管、加电阻和接口,手工按行列对齐摆到眼瞎。kbplacer 把这步自动化了——它读取 keyboard-layout-editor(社区通用的在线键位设计工具)导出的 JSON,在 KiCad 里自动把开关、二极管按你的键位图精准落位,还能自动走一部分线。配合CI脚本甚至可以做到「改键位图 → 一键重生成 PCB」的流水线,与 ErgoGen 是天然搭档:ErgoGen 管整体形状与参数,kbplacer 管元件落位与更新,人工只留给关键走线。星数不高、知道的人不多,但在键盘 PCB 设计这个细分工种里,它省下的时间是按天算的。这类「小工具嵌进大工作流缝隙」的项目,正是小而美仓库的标准长相。

8. Yowkees/keyball | 约 1 千星量级 | 社区活跃

一句话定位:日本社区出品的轨迹球分体键盘全家桶,开源硬件直接开卖成生意。

Keyball 是整条流水线的「成品样板间」:一个来自日本的开源分体键盘系列,覆盖 39/44/61 键等多个尺寸,最大特色是把轨迹球直接嵌进键盘右手——手不离主键区就能移动光标,这对每天在键盘和鼠标间往返上万次的程序员是真实的效率痛点。项目完整开源了 PCB、固件、外壳与组装文档,基于 ProMicro 兼容 MCU,固件层跑 QMK/ZMK 生态。更重要的是它的商业模式验证:设计开源,但官方以套件形式售卖,焊接零件包在日本客制化圈长销多年——「开源设计 + 卖套件 + 社区共创」的闭环被完整跑通。想进入键盘硬件的人,与其从零设计,不如先从 Keyball 的文档里学一遍完整的物料清单、BOM 组织和组装手册怎么写。


本期横向对比

仓库 类型 Star 量级 上手难度 适用场景
qmk_firmware 键盘固件 约 1.9 万 ⭐⭐⭐ 客制化键盘深度定制
zmk 无线固件 约 3 千+ ⭐⭐ 蓝牙分体键盘 DIY
vial 实时配置 GUI 千级 ⭐ 已有键盘的日常改键
kanata 系统层改键 约 4 千 ⭐⭐ 不刷固件的键位改造
keyd Linux 改键守护 约 3 千 ⭐ Linux 多键盘管理
ergogen 参数化设计 约 1-2 千 ⭐⭐⭐⭐ 从零设计键盘 PCB
kbplacer KiCad 自动化 数百 ⭐⭐⭐ PCB 元件自动落位
keyball 开源硬件成品 约 1 千 ⭐⭐⭐ 组装+学习+套件生意

全流程一图看懂

mindmap
  root((自组键盘流水线))
    设计
      ErgoGen 参数化出形
      kbplacer 自动摆件
      Keyball 现成开源样板
    固件
      QMK 有线之王
      ZMK 无线分体
      Vial 实时改键
    系统兜底
      Kanata 全平台
      keyd 极简守护进程

本期之最

参考来源

  1. qmk/qmk_firmware — QMK 固件官方仓库
  2. zmkfirmware/zmk — ZMK 无线固件官方仓库与文档(zmk.dev)
  3. vial-kb/vial — Vial 实时键位配置工具仓库
  4. jtroo/kanata — 跨平台软件层改键引擎仓库
  5. rvaiya/keyd — Linux 改键守护进程仓库
  6. ergogen/ergogen — 参数化键盘设计工具仓库
  7. adamws/kbplacer — KiCad 键盘布局自动化插件仓库
  8. Yowkees/keyball — Keyball 轨迹球分体键盘开源系列仓库

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入