讓燈光隨心意跳動 QMK
這篇文章記錄的是我如何把 Keychron K Max 系列鍵盤的燈光完全交給 QMK 控制,並寫出符合自己需求的燈光邏輯

⌨️ 猶如城市的燈火

鍵盤內的燈光效果如同城市裡縱橫交錯的路燈,道路早已鋪好,電線也早已接通,但夜晚來臨時,所有街燈卻固定按照工廠預設的次序點亮,沒有節奏,直到我請 AI 照我的需求編寫了 QMK 韌體 (Quantum Mechanical Keyboard) 刷入鍵盤,那一刻,每顆按鍵下的 LED燈都照著我想要的節奏亮起舞,猶如城市的燈火閃爍。

我讓 Enter鍵和 Esc 鍵可以像水波一樣向外擴散,開啟大寫按鍵 CapsLock 的提示燈不再侷限於一個小亮光,而是全部開啟,照亮整支鍵盤。

這篇文章記錄的是我如何把 Keychron K Max 系列鍵盤的燈光完全交給 QMK 控制,並寫出符合自己需求的燈光邏輯,這過程其實不難,但有幾個關鍵點可能會踩坑,如果沒避開,很容易卡住。

📟 CapsLock 鍵是遺跡

使用鍵盤打字時,很好奇為什麼鍵盤左邊會有一顆 Caps Lock?這是一個使用率不高卻又佔據著鍵盤好位置的按鍵,它在那裡常常讓人不小心按到而開啟字母大寫的功能,這在輸入密碼時容易誤觸而未察覺,很不方便。

原來,這是打字機時代留下來的遺跡,早期打字機要換大寫時,並沒有像現在這樣方便,輕輕一按 Shift 鍵 + 字母即可暫時輸出大寫字母,直到放開為止,所以,需要一個鎖定大寫的功能,於是出現了 Caps Lock 鍵,按下它時,所有字母都會變成大寫,不過,在現代電腦世界很少需要長時間輸入大寫,也頗常誤按 CapsLock,那麼,該拿這顆鍵怎麼辦呢?

把 CapsLock 改成 Esc;

原 CapsLock 移至 FN 層

(打字機時代留下的遺跡 CapsLock鍵)
(打字機時代留下的遺跡 CapsLock鍵)

因為在 Linux 作業系統和 終端機 裡,很常需要用到 Esc 鍵,使用文字編輯器 vim 寫腳本時也很常用到 Esc, 反而很少使用 CapsLock ,所以,把 CapsLock 改成 Esc 的好處是不會誤觸 CapsLock,在 保護手腕 上,讓 Esc 變得更好按、手指移動距離更短。

透過 VIA 改鍵

原來的 CapsLock 則移到 FN 層,也就是按下組合鍵Fn鍵 + CapsLock = 開啟字母大寫。

鍵位配置可以透過鍵盤 官網 Keychorn Laucher 的 VIA 修改 (VIA configurator 重新對應鍵盤配置),或者像我在該網頁上匯入寫好的鍵位腳本 Keymap-K3 Max White-6-18-12.json。總之,透過 VIA 改鍵的好處是 keymap 存在鍵盤 EEPROM,往後更新韌體也不會消失。

🖥️ 自由軟體 QMK

修改燈光的邏輯則透過 QMK 來操作。

QMK 是 Quantum Mechanical Keyboard 的縮寫,是一個完全開源的鍵盤韌體,開源(Open Source)是開放源始碼的意思,也是 自由軟體 在做的事,這讓任何人都可以查看程式碼、修改、編譯、分享自己的程式,讓各種功能配合著燈光閃爍,可以當作提示,非常實用。簡言之,QMK 就像鍵盤世界的 Linux 高度自由,可以隨您的需要客製化專屬的鍵盤。

(按Enter的燈光效果,不受燈光模式影響永遠波浪紋)
(按Enter的燈光效果,不受燈光模式影響永遠波浪紋)

💡 燈光設計

這次設計三個按鍵的燈光效果,不論在何種燈光模式按下:

💯 FN + Caps Lock

整個鍵盤會恆亮且亮度中等,藉此提醒目前是大寫模式。


💯 Enter

Enter 觸發 白色燈光 / RGB是淡綠色波浪紋,燈光從 Enter 鍵向整個鍵盤擴散,像湖泊水花濺出。


💯 Esc

Esc 觸發 白色燈光 / RGB是紅色波浪紋,燈光從 Esc 鍵向右下擴散,像雨水落入湖面。

📄 自動化腳本

整個流程其實可以通用且自動化,只要您有 Keychron K MAX 系列的鍵盤,不論是何種燈光皆適用。

我請 AI 寫了一支腳本 keychron_kmax_qmk.sh 功能包括:

  • 自動偵測鍵盤型號(適用於 K MAX 系列)
  • 自選鍵盤為 RGB 或 白光
  • 生成燈光程式
  • 編譯
  • 手動 DFU 後刷入 QMK

腳本完整內容放在 Github 的 repo

在腳本所在的目錄開啟終端機輸入檔名即完成了,真的很好用:

./keychron_kmax_qmk.sh

🔌 進入 DFU 模式

鍵盤刷入 QMK firmware (韌體。想成是硬體和軟體中間的那一層中介角色) 之前需要進入 DFU (Device Firmware Update),步驟如下:

  1. 拔掉鍵盤 USB
  2. 按住 Esc鍵約3秒
  3. 插回 USB
  4. 持續按住約 3 秒
  5. 放開 Esc鍵

然後在終端機輸入指令確認:

lsusb | grep df11

如果看到 0483:df11 代表鍵盤已進入 DFU。


💾 刷入韌體

進入 DFU後,刷入指令如下:

sudo dfu-util \
-a 0 \
-d 0483:df11 \
-s 0x08000000:leave \
-D firmware.bin

成功刷入後,鍵盤重新啟動就完成了!

💡 光的軌跡

每一次按鍵,都會在這親手打造的城市裡留下光的軌跡,而這一切之所以可能,是因為 QMK 是開源的,沒有專有軟體設計好的按鈕,讓人只能照著規定好的設計走,因此,QMK 帶來獨一無二的城市設計圖不屬於某家公司,乃是屬於所有願意動手的人。

✏️ 後記:

可能的坑

在寫腳本時發現燈光程式寫好了,但完全沒有反應,一問之下得知 Keychron K Max 系列的鍵盤預設 LED Matrix LED1 是關閉的,也就是是少了一行:

LED_MATRIX_ENABLE = yes

如果沒有這行,QMK 的燈光引擎根本沒有啟動,所以程式存在但永遠不會執行,這是最常見的坑。

寫入 LED_MATRIX

LED_MATRIX_ENABLE = yes 這條指令要寫在 keymap 目錄建立的 rules.mk,我的路徑是 ~/qmk_firmware/keyboards/keychron/k3_max/ansi/white/keymaps/bengju_a/rules.mk

用文字編輯器 vim 確認並寫入以下指令:

VIA_ENABLE = yes
LED_MATRIX_ENABLE = yes
LED_MATRIX_CUSTOM_USER = yes

這三行是整個燈光系統的開關。


  1. 註譯:LED Matrix LED 矩陣控制系統,它知道每顆 LED 的位置、亮度和顏色並負責動畫。 ↩︎


上次修改於 2026-03-13