开源键盘固件编辑入门 & Lofree Flow 2 87键Mac驱动分享
这篇文章介绍如何入门修改开源键盘固件,并分享 Lofree Flow 2 87 键在 Mac 上的驱动/配置方案。作者以 VIA(usevia.app) 为核心工具,说明通过网页端连接键盘后进行按键映射与功能调整的思路与入口,帮助用户快速上手自定义键位、适配 macOS 使用习惯,并提供相关资源链接以便直接配置。
TABLE OF CONTENTS
最近发现之前大学时候用的狼蛛F87轴已经不太行了,经常出现重复输入的情况,因此打算购入一台新的机械键盘。
考虑到我当下的需求和学生时代已经有所不同,打游戏的时间大幅减少,更倾向于键入舒适度和颜值,同时也慢慢习惯了不带小键盘的87键位,最后选择入了一把Lofree的线性轴87键盘Flow2。
开源键盘固件与VIA入门
这些术语在「客制化键盘」圈子里是非常常用的,但是本人不玩这个领域,只是想简单改一下键位,因此也支持简单了解。
固件
所谓固件(firmware)就是预先写入硬件中的代码程序,比如BIOS、UEFI就是写在主板ROM里的固件程序,用于引导启动流程。
而「键盘固件」自然就是写在键盘控制器里的程序了,主要负责处理键盘的输入信号,与操作系统串口进行交互,可以通俗理解为「键盘固件决定了你按下的键在电脑眼里是什么键」,你看起来按下了S键,但是固件说他是M,那操作系统就会认为他是M。
一般固件分为开源和闭源两种,之前我购买的狼蛛就是私有固件,必须使用厂商提供的程序才能进行改建,而一般这种又不提供Mac的二进制文件,所以导致我最开始还没买Windows的时候一度非常苦恼。
开源固件有QMK、TMK等,现在最主流的固件是QMK(Quantum Mechanical Keyboard),它是基于TMK的拓展项目,支持VIA配置、多层键码、RGB控制和NKRO全键无冲,兼容数百款键盘,GitHub活跃社区大。
QMK固件配置中有几个核心概念:
- keyboard:一种特定的键盘型号,与键盘的 PCB 板绑定
- keymap:一种键盘布局,它属于 keyboard,但是可以配置不同的软件特性以及键位布局,每一种 keyboard 下可以有多种 keymap
QMK固件与驱动编辑
理解了固件以后,我们再介绍另一个概念——驱动编辑器。
驱动编辑器就是提供一套接口或者GUI界面,帮助用户去编辑、编译和写入新的键盘固件程序,比如我们即将使用的VIA编辑器,QMK是其底层固件,VIA则是上层的GUI编辑器。
每个键盘都有自己的键位和分层,其对应的概念如下:
| 分层 | QMK(固件层概念) | Via(应用层概念) |
|---|---|---|
| 键盘(不可编程,PCB电路板逻辑写死) | keyboard | Draft |
| 键位(可编程) | keymap | Layer/Layout |
keyboard文件一般由厂商直接提供,键盘内也会内置一套或几套keymap,我们在VIA编辑器中一般就是编辑keymap来定义每个按键的具体功能。
Via编辑器
VIA是一个开源、免费的网页键盘配置工具,它为QMK固件的键盘提供了易于使用的图形界面,让用户无需编程或重新刷固件,即可实时自定义键盘的按键映射、宏、灯光效果和其他功能。
Via的一大特点就是使用了纯Web技术构建,用户可以直接在浏览器中就对硬盘固件进行读取和刷入编辑,底层技术是WebHID技术。
WebHID是一个现代的网页标准,允许JavaScript代码直接与连接到计算机USB端口的HID设备进行双向通信,而无需安装额外的驱动程序。

通过Via写入驱动
通过USB有线连接键盘后,打开Via网页,点击Authroize Device,然后选择已连接的键盘授权连接即可。


连接后还需要加载键盘的硬件配置,按照下面的步骤加载厂商给的驱动配置文件:

加载完成后回到第一个Tab就能看到当前键盘的键位了:

以我的键盘为例,大部分键盘的Win/Mac模式切换其实就是切换了默认的键位层,比如我的键盘里01是Mac键位,23是win键位,其中低一点的是默认键位,高一点的是按了Fn的特殊键位。
当前键盘是什么状态、使用哪个Layer这些都是写在硬件里的逻辑,Via是无法编辑的。

我们点开Fn Layer就可以印证我们的猜想:

因此最后我们的操作非常简单,直接把Win模式(Layer2)下的LeftWin和LeftAlt调整为和Mac下一致,然后日常使用win模式即可。

成果分享
键盘配置文件
编辑好的键位文件