40%直列鍵盤和行列輸入法
日期:2025/03/18 (二)
使用60%鍵盤一些時間了,一直覺得總有一天會走火入魔、栽進40%鍵盤的世界,但這種規格已經不在量產鍵盤的守備範圍了,客製鍵盤的錢坑多少也有所耳聞,遲遲不敢踏入。而最近開始慢慢受不了公司配備的薄膜鍵盤,輕輕一摸就會發出很大的聲音,對我這個使用鍵盤操作佔大多數的人來說,多少會有些不好意思,因此這一泯餘火又漸漸在我心中死灰復燃。
匱乏的資訊
由於討論度太低,以往各坑常用的巴哈/ptt/facebook二手社團幾乎不管用(不過巴哈入門推薦這篇),說到客製鍵盤,中文圈的資訊不外乎來自對岸的ZF。但再加上我要找的條件跟方向,交集起來幾乎沒人,ptt鍵鼠版40%鍵盤的文甚至只有十篇不到,更遑論更細節的討論。 直到我找到了一個叫r/olkb的subred,reddit人口基數夠大,再小眾的東西也有足夠的討論量,因此主要都在這裡打滾。
而要在英文圈混,沒有一個適當的關鍵字實在很難找到想要的資訊,因此以下介紹一些重要的名詞解釋:
Layout
- ortholinear / staggered:說了這麼多,到底什麼是直列式鍵盤?相較於我們平時熟悉的按鍵之接交錯排列的staggered鍵盤,按鍵之間像方格一般對齊排列的layout就是ortholinear,中文叫直列式佈局。關於這兩種layout,可以參考這篇更加詳細的解說。


- planck / preonic:或許還有許多細節,但以我粗淺的理解,planck就是40%的ortho,而preonic就是60%的ortho。


- 鍵盤玩家都很熟悉鍵帽的長度單位 1u、2u 的 u 即是 unit 之意。而不同於常見的 staggered 鍵盤中 Shift 鍵 2.25u、Space 鍵 6.25u 的鍵長,ortho 幾乎所有鍵(包括功能鍵)都是 1u 及 2u 的整數長度。src

Case Types
再來是我最在意,但也最困擾最少人提的「殼的種類」大致分為四種:High / Middle / Low Profile 跟 EOTW。
下圖是我自己的理解:Hi-Pro case的圍牆較高,切齊鍵帽,將軸擋住;Mid-Pro跟Lo-pro比較接近,大家名稱時常混用,圍牆較矮,切齊plate或是被plate蓋住,即是我們俗稱的懸浮式設計,我的最愛。而EOTW就比較少見了,case退化成bottom plate,兩個plate像三明治一樣將PCB夾起來,而且超出鍵帽外的邊界(紅色部份)通常會比較寬(?)。

olkb官網的購買頁面也有很直觀的分解圖:

想看更多角度的圖,可以到商品頁面下方的PHOTO區,看到大家精美的作品。這邊就放一張配置標準的mid-pro,上傳者看來也是個unix nerd,這種portable的setup感覺還滿不賴的。

題外話,搜尋lo-pro的時候要小心不要跟矮軸鍵帽(low profile keycaps)搞混了,常常點進文章才發現在講鍵帽==,所以要找懸浮式通常用mid-pro找就可以了。
條件與候選 (編輯中)
介紹完Preliminaries,接著就可以進入Problem Statement了(X)
features i want:
- ortholinear 40%, i.e. planck
- split space keys
- mid-profile case
觀望很久
- Drop OLKB Planck但最後一代 rev7是兩年前的事 planck的作者Jack Humbert聽說跑去開遊戲實況了
candidates:
Boardsource
YMDK Air40
NIU40
Quarkeys的Z40
Drop OLKB Planck rev7
開箱與組裝
我是直接在drop販賣頁面下訂,然後請MyDay代收服務代收。現在這些海外代購平台都很方便,遙想當年要買駿河屋還要去露天找買家比各種匯率,真是感慨。
總之到貨了就,開組!
- steel的plate跟PCB板,polycarbonate(某種材質吧)的白色半透明Hi-pro case
- 預設type-C和螺絲配件,還附贈一張Layout卡。


- 因為我不是這麼講究按壓感跟聲音的哈扣玩家,鍵帽跟軸就蝦皮上隨便買買,外觀好看就好。
- 因為空白鍵要用的2u鍵十分難找,單買超級貴,因此就用一套無刻白108鍵套組(取Backspace跟數字鍵的長鍵,都是2u)和散裝的自訂色1u鍵自己搭配,高度當然是我們beloved的XDA。
- 右邊則是rev7預設的OEM鍵帽,加10美金就有,以防萬一前面的組合不合還能墊背用就買了。
- 為了彌補一下之前60%沒買到靜音紅軸的遺憾,這次選用的是高特的靜音白軸,雖然還是買不到靜音紅但白軸也不錯,安靜很多。


因為是熱插拔的板子,只要按照YT上rev6的教學,猴子都會組。
組一半休息一下,拍個美照


完成。精神象徵的HJKL當然要來點不一樣的顏色,而老梗的電話線也不能少。最後來跟60%來個大小比一比


QMK Firmware (編輯中)
組裝完還不要高興的太早,接著就進入program your own keyboard的環節了。常看到reddit的客製鍵盤玩家這麼稱呼,我就在想,哪那麼臭屁,啊不就設定一下key mappings跟寫程式什麼關係,那就讓我們來揭開燒機鍵盤的的神秘面紗吧。
在Windows或Mac上基本上可以輕鬆的透過精美的GUI網頁介面(QMK configurator)及程式(QMK Toolbox)就完成基本的設定跟燒韌體。
但是!身為一個pretentious nerd,我們當然要learn it the HARD way。
官網上的documentation十分詳盡,基本上只要follow這個官網教學,想要的資訊應有盡有(反而該說是多到令人卻步...我甚至懷疑官網的資訊量會不會大到讓沒有linux/cli/c語言經驗的人眼花撩亂,從而不知從何下手)。
install on Arch Linux
$ yay -S qmk
setup local environment (move qmk/qmk_firmware to ~/qmk_firmware)
$ qmk setup
configs user settings
$ qmk config user.keyboard=planck/rev7
$ qmk config user.keymap=olkb
start programmin your keyboard
- mainly in the
keymaps.c
file- Keymaps
- edit with qmk.configurator
- or directly edit the keymaps.c file (with vim ofc)
- LED
printf();
- Keymaps
compile
$ qmk compile
flash your keyboard
- first, make sure your keyboard is in the
bootloader
mode. only pressing the reset button needed with the planck rev7. - Then, flash with the command
$ qmk flash
- about RGB settings
- tutorial
- RGB v.s. HSV:概念上有點像,RGB是三維座標,而HSV是極座標+強度的表示方法。
#define RGB_WHITE 0, 0, 63
const rgblight_segment_t PROGMEM rgb_layer_0[] = RGBLIGHT_LAYER_SEGMENTS(
{ 0, 9, RGB_WHITE }
);
const rgblight_segment_t* const PROGMEM rgb_layers[] = RGBLIGHT_LAYERS_LIST(
rgb_layer_0
);
void keyboard_post_init_user(void) {
rgblight_layers = rgb_layers;
}
layer_state_t default_layer_state_set_user(layer_state_t state) {
rgblight_set_layer_state(0, layer_state_cmp(state, 0));
return state;
}
行列輸入法
完成了基礎的設定,剩下的就是無盡的練習。除了ortho的鍵位熟悉需要一些磨合期之外,少了數字鍵,就要克服一個更艱難的問題:怎麼用注音輸入法打中文?多數的解法是換個輸入法,拼音輸入法,或是嘸蝦米、倉頡、行列這種形碼輸入法,想到從小就一直想學倉頡,或許這是一個機會。經過一些爬文比較後,行列的輸入速度最快,而且也有左右手上下列平均分配的特性在,因此可以使左右手分工
總結與心得
結果買了個鍵盤還要學東學西的,也沒比較好用,就跟買了手排車發現不太會開一樣。但,這樣才有趣嘛,不覺得生活中又多了一項挑戰,一個想達成的目標了嗎?