周五晚上和女票在玩游戏 Go-Go Town ! 。游戏很上头,太专注了,不小心把可乐打翻了。 可乐撒了一丢丢在键盘上,当时是擦干净了,使用也没啥问题。

隔天早上起来用的时候,就发现它坏了。 呜呜呜,陪伴5年的键盘。

因为键盘坏了,没法写代码(也没法玩游戏)。 先用小时达下单了个 27 米的键盘来临时用用。 然后在等待的过程中,找到了这个键盘 Keychron Q60 Max 。 HHKB 配列的键盘,距离上次选购都 5 年了,现在看能选择还是一样少。

临时键盘当天早上就到了,但隔天早上新键盘也到了(顺丰快递,速度真快)。 所以临时键盘就没用了,当场下岗。等它下次上岗,也不知道会是什么时候了。

新键盘

到手的第一件事,就是改键位。 原版 HHKB 可以通过拨动背面功能滑块, 选择交换 DeleteBackspace 按键。 不然要向左删除的时候,需同时按下 FN + Delete ,不是很方便。 但遗憾的是,这个新键盘不支持这样方便的方式。但它支持 QMK 固件,这也让它更好用。

随机送的小手册,提供个网站可以直接编辑键位。感觉很方便,但有 BUG 无法正常使用。 那就只有自己动手刷固件了,这也是我买这个键盘的原因之一。用的是开源固件 QMK。

固件刷写

由于 keychron 源码没有合并近主仓库,得这么操作。

# 下载源码
gti clone https://github.com/Keychron/qmk_firmware.git \
  --depth 1 \
  --branch wireless_playground
cd ./qmk_firmware

# 安装 qmk
brew install qmk/qmk/qmk

刷固件前,别忘了修改下键位。

diff --git a/keyboards/keychron/q60_max/ansi/keymaps/default/keymap.c b/keyboards/keychron/q60_max/ansi/keymaps/default/keymap.c
index a39ed4b9a2..37adca928b 100644
--- a/keyboards/keychron/q60_max/ansi/keymaps/default/keymap.c
+++ b/keyboards/keychron/q60_max/ansi/keymaps/default/keymap.c
@@ -29,7 +29,7 @@ enum layers {
 const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
     [MAC_BASE] = LAYOUT_ansi_60(
         KC_ESC,  KC_1,     KC_2,     KC_3,    KC_4,    KC_5,    KC_6,    KC_7,    KC_8,    KC_9,    KC_0,    KC_MINS,  KC_EQL,    KC_BSLS, KC_GRV,
-        KC_TAB,  KC_Q,     KC_W,     KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC,  KC_RBRC,            KC_DEL,
+        KC_TAB,  KC_Q,     KC_W,     KC_E,    KC_R,    KC_T,    KC_Y,    KC_U,    KC_I,    KC_O,    KC_P,    KC_LBRC,  KC_RBRC,            KC_BSPC,
         KC_LCTL, KC_A,     KC_S,     KC_D,    KC_F,    KC_G,    KC_H,    KC_J,    KC_K,    KC_L,    KC_SCLN, KC_QUOT,                      KC_ENT,
         KC_LSFT,           KC_Z,     KC_X,    KC_C,    KC_V,    KC_B,    KC_N,    KC_M,    KC_COMM, KC_DOT,  KC_SLSH,             KC_RSFT, MO(FN),
                            KC_LOPTN, KC_LCMMD,                           KC_SPC,                             KC_RCMMD, KC_ROPTN),

# 构建环境配置
brew link --force avr-gcc@8
brew link --force arm-none-eabi-binutils
brew link --force arm-none-eabi-gcc@8

# 固件构建并刷写
make keychron/q60_max/ansi:default:flash

待构建完成后,会进监听模式。 此时拔下键盘,再长按 Esc 键的同时,再插上键盘。 等待片刻,固件刷写。完成后,键盘会自动重启。就能正常使用了。

RGB 灯效设备睡眠后不恢复的解决方案

这个 Bug 不知道哪里导致的。但有个短平快的方案就是禁止 RGB 灯效跟着睡眠。

--- a/keyboards/keychron/q60_max/ansi/rules.mk
+++ b/keyboards/keychron/q60_max/ansi/rules.mk
@@ -1 +1 @@
-# This file intentionally left blank
\ No newline at end of file
+SLEEP_LED_ENABLE = yes

重新构建固件并刷写即可。

杂项