QMK可以方便的修改每个键位的键值,比如将QWERT改为小众的DVORAK布局,自定义组合键,自定义宏什么的。但每次修改都需要重新编译,刷固件,这就比较麻烦了。借助动态键值修改软件 VIA(https://caniusevia.com/),上述工作会变得简单有趣。VIA支持超过150种各种不同布局的QMK键盘,是以键盘设备的vendorId和productId加以识别的,这跟QMK源码中,键盘配置文件config.h中的以下代码对应。
/* USB Device descriptor parameter */
#define VENDOR_ID 0x04D8
#define PRODUCT_ID 0xECE9
#define DEVICE_VER 0x0001
在VIA官方中查找已支持的键盘,在其QMK源码中取得VENDOR_ID和PRODUCT_ID的值,放入自己的代码中,刷新固件后,VIA才能认出我们的键盘。否则在启动VIA时,只会一直停留在搜索设备中...
如果自己的键盘布局跟VIA支持的键盘布局都不同,那就需要自己修改,在FILIE菜单中import keymap进行导入。需要注意的是,如果键盘矩阵跟我们参考的键盘不同,那首次impot进来时,有些键位可能会显示空白。发生这种情况,通常是我们的矩阵比参考的键盘矩阵要大,那矩阵超出的部分,就无法显示了。如下图,我参考的键盘矩阵是9x12,而自己的键盘矩阵是6*21,当位于矩阵乘积108后的键位就无法显示了。这时,我们拔掉键盘USB线再插入,重新认一次键盘,VIA就会修正布局,显示正确的键位。另外,VIA的keymap是json格式,而且有其语法要求,文件有任何错误,VIA在导入时都不会提示,这就需要认真阅读VIA官网上的文档(https://caniusevia.com/docs/specification/)。
至此,我们可以愉快地修改自己键盘的键值了。
比如将鼠标功能加到键盘上,应急时可以使用一下。