使用 QMK Firmware 的 ErgoDash 可以設定多層虛擬鍵盤,您可以依照不同的需求來設定鍵盤的位置與功能。
什麼是多層虛擬鍵盤?
當我們在按下按鍵時,鍵盤會依照按鍵的定義來送出訊號,譬如我們按 A,鍵盤就會送出 ‘A’ 的訊號,因為我們定義了 1 層鍵盤的每個按鍵的訊號,如果我可以定義 2 層的鍵盤訊號,並且可以切換的話,等於一個按鈕就有兩種功能了。
就像 Caps Lock 一樣,按下後就能切換到大寫層。QMK 系列的鍵盤 (ErgoDash, ErgoDox, 等等) 可以自訂每一層的鍵盤配置。您最多可以建立 32 層虛擬鍵盤層,但若是使用 QMK Configurator 這個工具只能定義 16 層。在鍵盤啟動後,預設會使用第 0 層的鍵盤配置,你可以在 config.h
中定義 default_layer
的值來直接變更初始化鍵盤層,預設就是第 0 層。
初 始 化 鍵 盤 層 變 更 鍵 盤 層 ----------------------- ------------------ 31 31 30 30 29 29 : : : : ____________ 2 ____________ 2 / / 1 / / ,->1 /___________/ ,->0 /___________/ | 0 | | `--- default_layer = 0 `--- default_layer = 1 layer_state = 0x00000001 layer_state = 0x00000002
另外可利用 layer_state
來設定要開啟的虛擬層,例如你有 32 層,但只想開啟 3 層 (30、29 與 1),則可以如下設定:
Overlay feature layer --------------------- bit|status ____________ ---+------ 31 / / 31 | 0 30 /___________// -----> 30 | 1 29 /___________/ -----> 29 | 1 : : | : : ____________ : | : 2 / / 2 | 0 ,->1 /___________/ -----> 1 | 1 | 0 0 | 0 | + `--- default_layer = 1 | layer_state = 0x60000002 <-'
當按鍵按下時,系統會從最大數字的虛擬層開始往下找,先找到的就先回傳。
使用 QMK Configurator 定義虛擬鍵盤層
如何建立虛擬鍵盤層
接者您可以使用 QMK Configurator (若不會用可以看這裡),來設定虛擬鍵盤層。
切換到 Quantum 分頁,紅色框中的特殊鍵是用來控制虛擬鍵盤層。
你只要把控制鍵拖曳到鍵盤上,並設定第幾層,左側就會自動新增虛擬鍵盤層。
範例:第 0 層 - 預設
您可以將第 0 層設定為 QWERTY 鍵盤,將周邊的按鍵設為常用。
我設定了總共 4 層的虛擬鍵盤層供我工作使用:
然後燒錄到鍵盤內即可。
ErgoDash 是支援 QMK 韌體的開源鍵盤,您可以在 這裡 購買自行組裝的套件。
特殊按鍵
在設定虛擬鍵盤層時,有幾個特殊的按鍵非常好用,以下介紹我常用的幾個。
透明鍵 (KC_TRANS)
KC_TRANS
透明按鍵, "KC_TRNS
" 與 "_______
" 是透明按鍵的別名,當系統由數字大的虛擬層往下尋找時,若碰到 KC_TRANS
(透明鍵),則會繼續往下一層尋找。
若是你在第 2 層設定 KC_A,而目前是第 3 層,在第三層相同位置設定 KC_TRANS,則按下按鍵時,鍵盤會回應 KC_A (A)。
沒有按鍵 (KC_NO)
跟 KC_TRANS
不同的是,當程式遇到 KC_NO
,就不會往下一層尋找,也可以使用 XXXXXXX
是同樣的意思,