QMK键盘固件上手:环境装好、布局改完,5步完成第一次刷写
【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware
周五晚上,你只是想临时把空格键改成一键截图,翻了半天厂商驱动页面,连入口都没找到。与其继续和驱动较劲,不如换个思路:把想要的按键行为直接写进键盘固件里。开源项目 QMK Firmware 干的就是这件事——它支持 600 多种键盘型号,你可以自由做布局自定义,把每个键位编译成完全属于你自己的键盘固件。
它能替你解决什么
QMK 把键盘的"出厂设定"变成"你的设定":原厂固件里改不了的空格键、够不到的功能键、想要的一键宏,统统可以在源码里重新定义,然后编译、刷进键盘,从此生效。
先回答两个你可能想问的问题
"我的键盘型号到底支不支持?"打开 keyboards/ 目录找答案——目录名就是键盘名,从planck、preonic到kbdfans、keychron都有。找到同名文件夹,就基本可以动手;找不到不代表没救,docs/newbs_external_userspace.md 讲了怎么给仓库里没有的键盘单独建工作区。
"刷坏了还能救回来吗?"大概率能。QMK 编译出的固件和原厂固件走的是同一条刷写通道,就算刷进去的固件有问题,多数键盘仍能通过"插拔时按住某个键"重新进入引导模式(bootloader,就是刷写专用的小程序入口),再刷一个正常的固件回去。真正变砖的情况少,而且通常和固件本身无关。放心试,心态放平。
从零到第一次刷写:一条线走完
准备环境
在终端里先克隆仓库(就是那个黑色的命令行窗口,Linux/macOS 用 Terminal,Windows 建议装一个 MSYS2 或 Git Bash):
git clone https://gitcode.com/GitHub_Trending/qm/qmk_firmware装完之后跑一条命令,它会自动装好交叉编译工具链(把 C 代码翻译成芯片能执行的程序所需的工具):
qmk setup这一步可能要几分钟,终端打印出安装完成提示后才算数。
新建并修改布局
qmk new-keymap会基于该键盘的默认布局生成一份你自己的副本,改坏了也不影响原版。以 Planck 为例:
qmk new-keymap -kb planck -km my_layout生成的文件在keyboards/planck/keymaps/my_layout/keymap.c。打开它,你会看到每个键位都是KC_XXX这种代码(keymap,即按键映射表)。把想改的键换成目标键码就行,比如把空格改成 F13(很多系统可把 F13 绑成截图):
KC_SPC, -> KC_F13,键码含义全在 docs/keycodes.md,像查字典一样按需翻。
编译出固件
回到终端,一条命令:
qmk compile -kb planck -km my_layout这时候终端会打印出一长串编译过程,最后看到[OK]和Checking file size ... fine之类的字样,就表示固件生成成功了,产物在.build/planck_my_layout.hex。
刷进键盘
编译完成后,按你键盘对应的方式进入引导模式(Planck 是长按右下角键插拔,其他型号见各自文档),然后把.hex文件拖进 QMK Toolbox 点击 Flash——它是图形化刷写工具,不用敲命令。刷完键盘自动重启,新布局立即生效。各型号引导方式汇总在 docs/flashing.md。
主线跑通之后,可以顺手试三个实验
- 给键盘加一层"Fn":定义第二层,把回车键改成一键切换虚拟桌面。按下某键时进入功能层,松开即回主层,docs/feature_layers.md 有完整写法。
- 把一句话塞进一个键:宏功能(macro,按键序列打包)可以把"粘贴签名""输入常用命令"绑到右 Shift 长按这类不常用键上,参考 docs/feature_macros.md。
- 调灯光:如果你的键盘带 RGB 背光,在
rules.mk里加RGBLIGHT_ENABLE = yes,再放几个RGB_TOG、RGB_MOD控制键,呼吸、彩虹等效果就都能切换,见 docs/features/rgblight.md。
每个实验都只需改一个文件、重新编译一次,五分钟的事。
刷固件高频问题踩坑速查
| 现象 | 原因 | 一句话解法 |
|---|---|---|
编译报No rule to make target | 键盘名和目录名对不上,或子目录写错 | 用-kb传完整路径,如-kb takashicompany/dogtag,或先cd进键盘目录 |
| 提示 Flash 空间不足(固件太大) | 启用的功能太多,超出芯片容量 | 在rules.mk把用不上的XXX_ENABLE设为no,AVR 芯片可加SQUEEZE_ENABLE = yes压缩 |
| 进引导模式后电脑认不到键盘 | Windows 下缺驱动,设备管理器里带感叹号 | 用 Zadig 工具换一个 HID 驱动再刷,或换电脑/换 USB 口 |
更多编译类问题可以翻 docs/faq_build.md,按报错关键词对号入座。
下一步可以去哪
- 想把键位研究透:docs/keycodes.md 和 docs/cli_commands.md 是两块基石,前者管"键能做什么",后者管"命令怎么敲"。
- 想看别人的玩法:layouts/community/ 里有社区提交的整套布局,
60_ansi、ortho之类目录名即键帽排列,挑一个喜欢的当起点最快。
下一步你可以:打开keyboards/找到你键盘的文件夹,用qmk new-keymap建一个自己的布局,把最不顺手的键改掉——从这一个键开始,剩下的交给好奇心。
【免费下载链接】qmk_firmwareOpen-source keyboard firmware for Atmel AVR and Arm USB families项目地址: https://gitcode.com/GitHub_Trending/qm/qmk_firmware
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考