<!-- title: 自组机械键盘的8件开源神器 -->

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

## 概述

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

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

---

## 1. [qmk/qmk_firmware](https://github.com/qmk/qmk_firmware) | 约 1.9 万星 | 长期活跃

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

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

- 上手难度：⭐⭐⭐
- **适用人群**：买了客制化键盘想深度定制的玩家、准备做键盘产品的设计师。
- **变现思路**：为量产键盘厂商做固件适配与代维护；QMK 支持本身就是国产客制化键盘的卖点之一，懂固件的工程师在供应链里是稀缺角色。

## 2. [zmkfirmware/zmk](https://github.com/zmkfirmware/zmk) | 约 3 千+星 | 长期活跃

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

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

- 上手难度：⭐⭐（云端编译大大降低了门槛）
- **适用人群**：想 DIY 无线分体键盘的玩家、低功耗嵌入式爱好者。
- **变现思路**：无线分体键盘套件品牌；付费键位调优服务（程序员是分体键盘的核心付费人群，一人一年几百元的定制订阅完全成立）。

## 3. [vial-kb/vial](https://github.com/vial-kb/vial) | 约千级至 2 千星 | 长期活跃

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

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

- 上手难度：⭐
- **适用人群**：所有 QMK/Vial 兼容键盘的持有者；零基础用户第一个该装的键盘工具。
- **变现思路**：本身不适合直接收费，但「Vial 兼容」是键盘产品页上的实打实卖点，是供应链上低成本高感知的增值项。

## 4. [jtroo/kanata](https://github.com/jtroo/kanata) | 约 4 千星量级 | 长期活跃

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

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

- 上手难度：⭐⭐
- **适用人群**：不能用客制化键盘的场景（公司配机、笔记本）、想统一多设备键位的人。
- **变现思路**：打包「程序员键位效率方案」：配置文件模板 + 教程 + 企业效率咨询；配置文件本身是可传播、可收费的数字商品。

## 5. [rvaiya/keyd](https://github.com/rvaiya/keyd) | 约 3 千星量级 | 长期活跃

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

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

- 上手难度：⭐
- **适用人群**：Linux 桌面重度用户、多键盘混用党。
- **变现思路**：面向 Linux 企业桌面做标准化键位与输入合规方案；或与预装 Linux 的硬件厂商合作出厂定制。

## 6. [ergogen/ergogen](https://github.com/ergogen/ergogen) | 约 1-2 千星 | 社区维护

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

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

- 上手难度：⭐⭐⭐⭐（需要懂 PCB 与 KiCad 基础）
- **适用人群**：想设计自己第一把键盘的硬件爱好者、开源硬件课程。
- **变现思路**：整个「一人键盘工作室」模式的核心引擎——设计（ErgoGen）→ 打样 → 卖套件/卖成品/接定制外包，海外已有大量独立设计师按此路径变现，客制化键盘套件单价通常在千元级。

## 7. [adamws/kbplacer](https://github.com/adamws/kbplacer) | 数百星 | 社区维护

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

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

- 上手难度：⭐⭐⭐（前提：会用 KiCad）
- **适用人群**：键盘/ macro pad/宏小键盘设计者、KiCad 自动化玩家。
- **变现思路**：接客制化键盘 PCB 设计外包的单件交付效率倍增器；也可扩展到 macro pad、控制面板等一切「矩阵按键」类硬件设计。

## 8. [Yowkees/keyball](https://github.com/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 千 | ⭐⭐⭐ | 组装+学习+套件生意 |

## 全流程一图看懂

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

## 本期之最

- **最值得立即尝试：[kanata](https://github.com/jtroo/kanata)** — 不用买键盘、不用焊接、不用刷固件，一份配置文件当天就能把你的旧键盘升级成层键系统，是所有工具里反馈周期最短的一个。
- **最有商业潜力：[ergogen](https://github.com/ergogen/ergogen)** — 参数化设计把键盘设计的边际成本压到接近零，「设计→打样→卖套件」的一人公司路径已被 Keyball 等前辈验证，工具链齐备只差动手的人。
- **最被低估：[kbplacer](https://github.com/adamws/kbplacer)** — 数百星的体量，干的却是整个流程里最磨人的活；懂它的人在键盘设计外包市场里等于自带一台印钞加速器。

## 参考来源

1. [qmk/qmk_firmware](https://github.com/qmk/qmk_firmware) — QMK 固件官方仓库
2. [zmkfirmware/zmk](https://github.com/zmkfirmware/zmk) — ZMK 无线固件官方仓库与文档（zmk.dev）
3. [vial-kb/vial](https://github.com/vial-kb/vial) — Vial 实时键位配置工具仓库
4. [jtroo/kanata](https://github.com/jtroo/kanata) — 跨平台软件层改键引擎仓库
5. [rvaiya/keyd](https://github.com/rvaiya/keyd) — Linux 改键守护进程仓库
6. [ergogen/ergogen](https://github.com/ergogen/ergogen) — 参数化键盘设计工具仓库
7. [adamws/kbplacer](https://github.com/adamws/kbplacer) — KiCad 键盘布局自动化插件仓库
8. [Yowkees/keyball](https://github.com/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学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
