1. 我如何遇見 CharaChorder One (CC1)

在 2022 年時,我的食指和手腕有時會痛,而發現主要原因是來自於鍵盤。我的手比較小,所以我在一般鍵盤打字時會需要移動整隻手,也大部分都使用食指去按鍵。要去改變這近二十幾年的習慣已經幾乎不可能,所以我想一個可能的方法就是換掉鍵盤!我在網路上做了幾次搜尋,(用英文)搜尋過如「不需要使用手的鍵盤」和「腕隧道 鍵盤」等。然後我用「最快的鍵盤」關鍵字,在一個新聞網站找到了 CharaChorder One (CC1)。

(我現在已經不記得這個,但 Google 將永遠記得它…)再進而搜尋 CC1 的一些詳細資料後,我在隔天就買下了它!(2022/07/22, 訂單編號 #1195)

2. 練習,還是直接使用?

在約兩個月後(2022/09/13),我收到了 CC1,並開始在工作以外的時間練習。練習 CC1 的單字和和弦輸入就像是在享受一個舒服的手指運動。有助於我減緩軟體工程師的打字及工作帶來的手指和心理疲勞。我在 CC1 上的打字在此期間也逐漸加快。我也有幾次嘗試使用 CC1
來工作,因為我知道練習和實際使用之間有很大的不同。但因為那時有很多緊急工作要處理,我也只能在需要加速時換回在一般鍵盤上工作。此外,我也需要練習用 CC1 寫程式和用注音輸入法打中文。兩者都跟純英文打字不同。我真的選到了一條不好走的路,但如果在這裡放棄,我的手最終會被一般鍵盤弄壞。我還想寫更多有用和有趣的程式!憑著這個決心和大量的練習,儘管這期間有很多工作和不好的事情發生,在 2023 年 2 月,我的英文打字速度達到每分鐘 40 字、學了倚天注音,並且開始用 CC1 寫一些小程式。完全改用 CC1 的時候快要到了嗎?

3. 突發故障及換新

當前途看來一片光明時,這時我不小心弄壞了 CC1 的一個搖桿(我強烈懷疑我有會破壞身邊的電子產品的詛咒),所以我又買了另一台 CC1(訂單編號 #2935, 2023/02/27)。第二台 CC1 在 10 天後就送來了(2023/03/09)。從兩個月進步到 10 天,太棒了!收納盒有一點變化,我感覺搖桿也比第一台更堅固、更容易使用。產品和公司都在成長中!這 10 天的空白確實影響到我的打字速度,但很快地又回歸了。

4. 尋找能改善注音輸入的方式

在那 10 天內,因為英文打字和寫程式的部分已經夠用了(速度當然還是比不上在一般鍵盤上,二十幾年的肌肉記憶堅若磐石),我一直在想注音輸入鍵盤配置有沒有改善空間。因為深知注音輸入法在 41 個符號在不同的按鍵上時可以用聲韻並擊輸入(倚天注音因為需要用到一些數字鍵,所以他不會是選項,但儘管它不是一個最佳解,仍是一個相對簡單的解法),所以問題是「如何在 CC1 的主層上配置 41 個字元鍵,且盡可能少動到 CC1 既有的按鍵配置?」和「如何修改字元鍵和注音符號之間的對應關係?」首先,最顯而易見的是用數字鍵去替換掉主層上的一些非字元鍵。但是後來考慮到寫程式的情況,我改用一些程式上常用的符號。結果就是底下這個鍵盤佈局。

(下面是修改後的 CC1 主層佈局,上面是對應的注音佈局。小指和方向鍵搖桿上沒有變更,所以省略。)

對第二個問題,我找到一個開源的注音輸入法,所以我根據上圖把輸入法中的對應規則改掉。運作也沒有問題。是時候來作一個練習這個注音佈局的網頁!

整個設計和實作的細節我寫在這篇文章

5. 處理注音密碼

當用 CC1 以及我的新的注音佈局時,我發現了一個新問題。就是注音密碼。它會用標準注音佈局和一般鍵盤的對應關係來從一串中文字產生密碼。

因為它仰賴一般鍵盤和標準注音,所以無法直接用我的注音佈局去打出這種密碼。因此我需要一個能在我的新的注音佈局下打出對應的字元的方式。

經過一些搜尋後,我找到了一個 Mac 的 Unicode 鍵盤佈局編輯器,Ukelele,並產生了一個「映射 CC1 的輸出和注音密碼」的鍵盤佈局(舉例來說,對「CC1 輸出 / -> 注音 -> 注音密碼 1」的對應,/ 鍵要輸出 1 字元。如此,我可以在 CC1 上用我的新的注音佈局來正常地打出注音密碼。

6. 研究其他中文輸入法

因為好奇在 CC1 上打中文,有沒有更好的解法或改善的點,我研究了其他的中文輸入法。

  1. 因為好奇目前最快的注音輸入法,我找到了追音輸入法。這個輸入法是針對法官、書記官及司法領域的中文輸入需求所設計。每個中文字要用三個鍵的並擊來輸入。使用者經過訓練後,打字速度可以達到每分鐘 200 字。但是它是個閉源的軟體且只支援 Windows,所以我沒辦法使用或修改它。

  2. 我瀏覽了一些字形輸入法。它們幾乎都需要依序輸入,所以不太能使用並擊。

在研究之後,我認為我設計的 CC1 注音佈局是目前現有最好的解法。因此我決定專心練習這個佈局。這可能需要比 CC1 英文佈局更長的時間。

7. 完全換成 CC1 前的最後一步

練習 CC1 中文打字是完全換成 CC1 前的最後一件事。所以從 2023/11/06 ,我開始進行一些密集訓練,並在試算表上記錄每個 10 分鐘練習的速度。我也根據練習中遇到的一些問題,對佈局做了一些調整。

在我開始在 CC1 上打中文字後,我發現注音輸入法跟 CC1 是天生的一對。CC1 的設計可以充分利用注音輸入法的並擊特性,並且 CC1 的四方向搖桿,能完美搭配注音符號表中三或四個符號的一個分組。另外,我只需要移動一個手指就可以去用方向鍵選字。在 CC1 上打中文對我來說是相當愉快的體驗。

最後,經過 166 次 (即 1660 分鐘) 的練習之後,今天(2023/12/21),也是我的生日,是我完全換成 CC1 的第一天,我可以用 CC1 打出一個中英混合的工作文件!到此經過了相當遠的路,而我與 CC1 的旅程還會持續下去。

8. 重啟 CC1 和弦功能

在完全換成 CC1 之前,我通常是關掉 CC1 的和弦功能,因為一些 CC1 的和弦會與注音輸入的聲韻並擊衝突,並且我的注音佈局還在調整中。於是在我有了一個穩定的注音佈局版本(V5)之後,我重新開啟了 CC1 的和弦功能,並加上一些 CC1 和弦。它們是用來輸入一些我工作上常用的字,並且它們所用的按鍵組合並不會跟注音佈局 V5 下的任何聲韻並擊衝突。

9. 再見了,滑鼠

除了打字的壞習慣造成的問題,一般滑鼠也對我的手指和手腕造成問題。在一般滑鼠上的大量點擊操作也造成我食指痛。然後我換用觸控板,但使用時我手指上的皮膚會有撕裂感,所以也不適合我。之後我改用軌跡球。軌跡球可以減少手腕的移動,但代價為手指需要更多移動來轉動軌跡球,所以它仍然對我的手指造成負擔。此外,當我要使用它們時,我的手都需要離開鍵盤。

自從我知道 CC1 的滑鼠功能後,我一直想要從軌跡球換成 CC1 的滑鼠搖桿。雖然較慢,但我只需要用較小的手指動作就能夠到並控制滑鼠搖桿,所以長期來說,它應該會對我的手指比較好。

但是為了我的中文輸入法,在主層的滑鼠移動和滑鼠點擊鍵已經被換成其他鍵。所以我決定在數字層上加上那些滑鼠操作鍵。配合數字鎖定鍵的設定,我可以在主層(操作鍵盤)和數字層(操作滑鼠)。結果,在 2024/01/16,我終於從軌跡球換成 CC1 滑鼠,並且在我的鍵盤架上,只有我鐘愛的 CC1,它的名字為 Estrea

10. 為 Master Forge (M4G) 所設計的新的注音佈局

M4G,也就是 CC1 的後繼者,它的預覽圖剛出來時,我並沒有考慮換成 M4G。這是因為它的搖桿過少,與我的使用情境不太適合。(在那時它的一邊只有 6 個搖桿。)但是後來, M4G 的設計再多加 4 個搖桿之後,我開始去尋找適合我的使用情境的解法(特別是要支援注音輸入),然後我設計了一個新的注音佈局,天弦 36 鍵。是一個只要 36 個鍵就能在 CC1 或 M4G 上用注音及「聲韻並擊」打中文。(佈局的設計過程和詳細資訊我寫在這個文章。)

之後,在 CC1 上經過數天的練習,我的打字速度達到 30 WPM, 我覺得已經夠我使用。雖然有一些小缺陷,但是我感覺用比較少的鍵的打字效率有比較好。

11. 為 CC1 開發新的練習工具

我在 CC1 上的英文和中文打字速度已經足夠我使用。但是在寫程式時,我在打數字或符號時還是會覺得慢。我想我還是不太熟悉那些鍵的位置,所以想要可以練習那些鍵的工具。我也需要一個好的個人專案來練習一些新的前端技術、語法、和一些我想嘗試的東西。

因此,我最近開始開發了一個新的練習工具,其名為 Alnitak(參宿一)。在寫本文的時間點, 這個工具已經有「在佈局上強調顯示目前要按的鍵」和「英數字練習課程」的功能。它的最新的功能和詳細資訊,我會更新在這篇文章

12. 喚醒「左右開弓/雙持」

我是天生的左撇子,但小時候被訓練使用右手寫字和用筷子,但其他事情仍然是偏向使用左手。在我高中後期,我發現我的寫字速度已經不夠在課堂上寫筆記,所以我練習了同時使用雙手寫字。它們可以一起合作寫一個英文單字或中文字,也可以寫不同的。最終,我可以在有兩支筆的時候隨時做到用同時雙手寫字。(不是很重要但我也可以同時使用兩雙筷子。)

但在我碩士畢業並開始全端工程師的工作後,我很少需要快速寫字,而是需要打字。一些裝置的設計是設計給單手或者特定的一隻手的。一個例子是一般的鍵盤的方向鍵是在右手邊。另一個是一些筆電的排氣孔是在左邊,所以我不能把滑鼠放在那邊。

然而,在 CC1 上,方向鍵和滑鼠移動鍵就沒有這種限制。我可以隨時自由決定要用左手還是右手。另外在 CC1 上使用和弦,特別是使用注音和弦時,我也是同時使用雙手在打字。這些事情讓我回想起我用雙手寫字的時候,我想這些也是雙手協調和平衡的好練習。

13. 從一(One)到二(Two)

在這個月(2024 年 12 月),我的第二台 CC1 上的一個鍵壞了,另外我發現 CC1 的金屬鍵帽在冷天時會有點冰冷。雖然我還能繼續使用它,而且已經預訂了 M4G,但我還是買了 CC2,作為我今年的生日禮物。我在昨天收到,並在今天(2024 年 12 月 28 日)開始使用。從 CC1 轉換到 CC2 的過程相當完美,我短時間就習慣了 CC2。當我用 CC2 在打這個章節時,我可以明顯感受到一些進化的地方,包含變得更安靜、更小的峰值力和新鍵帽的設計。我將我對 CC2 的評價寫在這篇文章

14. Master Forge 送達!

在約一年的等待之後(我在 2024/03/30 預訂),我的 Master Forge 在幾天前送達(2025/03/05),而今天我開始使用它(2025/03/08)。開箱的體驗相當好,並且我可以無縫的將我在 CC2 上的和弦和佈局轉移過來。M4G 的搖桿與 CC1/CC2 上的搖桿的感覺不太一樣。感覺它的按鍵能更加迅速的被觸發,它也感覺更吵一些。搖桿的位置也與 CC1/CC2 上的不太一樣,我可能需要花一些時間去習慣它。我將我對 M4G 的評價寫在這篇文章

CharaChorder One (CC1) 上的注音鍵盤佈局

在這個段落,我將說明一些現有的注音鍵盤佈局、他們在 CC1 上使用的一些問題、以及我的注音輸入佈局的設計、實作及更新。

現有的注音鍵盤佈局的問題

標準注音鍵盤佈局(大千)

標準鍵盤佈局是我一開始學習中文打字時就使用至今的佈局。

在一般鍵盤上,注音符號是以注音符號表順序排列,所以熟悉注音的使用者很容易找到各符號的位置。另外,使用者可以同時輸入一個字的聲母、介音和韻母(即聲韻並擊)。再者,經常使用的符號(ㄐㄑㄒㄓㄔㄕㄧㄨㄩ)在鍵盤的中間位置(以用食指操作)。

然而,因為 CC1 的佈局與一般鍵盤完全不同,注音符號的位置就不容易尋找和學習。並且一些注音符號是在一般鍵盤上的數字鍵或符號鍵上,在 CC1 上就需要切換至數字層去輸入那些符號。所以一些注音組合無法在 CC1 上使用聲韻並擊。

倚天注音鍵盤佈局

倚天是一個針對熟悉英文打字的使用者設計的鍵盤佈局。它的排列規則是用各注音符號發音相近或形狀相近的英文作為其對應鍵,所以對在任何鍵盤(包含 CC1 )上熟悉英文打字的使用者會相對容易學習。這是一個可用、較容易且不需要修改輸入法軟體的解法。但是與標準注音一樣,也無法使用聲韻並擊。

創造新的注音佈局 - 天弦 41 鍵

設計(V1)

如上所述,在 CC1 上使用現有的注音佈局會有一些問題。為了讓其易學(容易找到對應的鍵)且有效率(可使用聲韻並擊),要為了 CC1 特別設計一個注音佈局,所以我設計出下圖的佈局。

這個鍵盤佈局的設計原則為:

  1. 注音符號盡可能用注音符號表順序排列。
  2. 設計聲母(圖上紅色鍵)、介音(圖上綠色鍵)、韻母(圖上藍色鍵)的位置,使得所有注音組合均可用聲韻並擊。(左手:聲母、右手中指和食指:介音、右手拇指和無名指:韻母)
  3. 保留 Dup 鍵的位置,因為它無法在輸入法軟體中被對應到一個注音符號,並且我不想影響到已經學好的 CC1 英文打字。
  4. 常用鍵盡可能保留位置,例如 ctrl 鍵 (在我的 Mac 上被 Karabiner 重新映射為 command 鍵)、backspace 鍵、enter 鍵、(右)空白鍵。
  5. 常用的注音符號放在食指或中指的搖桿上。

實作(V1)

要實作注音佈局需要完成兩件事。一個是調整 CC1 上的鍵盤佈局,另一個是修改注音輸入法軟體的映射規則。

調整 CC1 上的鍵盤佈局

注音輸入法軟體只能映射文字鍵(英文字母、數字、符號)到注音符號,所以在我的注音佈局上的注音符號鍵,在 CC1 上他就一定要是文字鍵。也考慮到我寫程式上的需要,我用一些程式碼上常用的符號鍵去替代一些非文字鍵。最終的 CC1 鍵盤佈局如下圖。

鍵盤佈局的 CSV 檔在此:https://raw.githubusercontent.com/andy23512/setting-files/master/CharaChorder/cc1-layout.csv

修改注音輸入法

最後一步是改掉注音輸入法的鍵盤佈局。作業系統內建的輸入法很難改,所以我 fork 了一個開源 Mac 注音輸入法後,根據 CC1 鍵盤佈局和我設計的注音佈局去修改它的映射規則((https://github.com/andy23512/McBopomofo/commit/744426337c8cc54a0700f467d26b3c4289cd55a9?diff=split)。

(在 Windows 和 Unix-like 作業系統上,也許可能用新酷音輸入法,將這行改為 "/[(-wzg#kcmre|io.{\u,atl$])?bqxfdhpsy;nj};", 。)

自此,我終於可以用一個更好的注音鍵盤佈局來打中文。

更新

V2

使用這個佈局一段時間後,我發現了一些問題,所以做了一些調整。


  1. 所有韻母(ㄦ以外[1])移到右手的拇指搖桿,以符合注音符號表的分組。(原 Dup 移到左滑鼠鍵搖桿的北鍵。)此改變也讓常用的韻母 ㄢㄣㄤㄥ 被放在拇指的第一搖桿。這有助於提升輸入效率。
  2. 所有聲調(一聲以外)移到右手的無名指搖桿。
  3. ㄩ 移到右手的無名指搖桿。

新的 CC1 佈局檔:https://raw.githubusercontent.com/andy23512/setting-files/master/CharaChorder/cc1-layout-v2.csv
小麥注音更新: https://github.com/andy23512/McBopomofo/commit/14899a112d1032330825fe16f8718d6ecab7021c

V3

發現一些在作業系統佈局下在 Shift 層的鍵(如 {)會使聲韻並擊壞掉,所以我修改了 CC1 佈局以處理這個問題。

新的 CC1 佈局檔: https://raw.githubusercontent.com/andy23512/setting-files/master/CharaChorder/cc1-layout-v3.csv
小麥注音更新: https://github.com/andy23512/McBopomofo/commit/e33883e3f7d189bf18d339c7a02d0072899848fc

localhost_4200_layouts (1)

V4

經過一些中文打字練習後,我發現把二聲到輕聲都放在右手中指搖桿會使右手中指的負擔過重。所以我試著分到兩個搖桿上,看看會不會改善。

(CC1 佈局沒有變)

小麥注音更新: https://github.com/andy23512/McBopomofo/commit/35b7eccbe94c184d9edee9d11471076702660ec2

image

V5(最新版)

我發現在 ClickUp 上打 ㄌ(/) 會觸發斜線命令,所以改為 = 鍵,並把 / 移到左滑鼠搖桿。

新的 CC1 佈局檔: https://raw.githubusercontent.com/andy23512/setting-files/master/CharaChorder/cc1-layout-v5.csv
小麥注音更新: https://github.com/andy23512/McBopomofo/commit/fe53eda098250384d600af04d44e2139dc492fef

localhost_4200_layouts

V5.1 (滑鼠鍵調整)

因為在主要層的滑鼠搖桿已經被設為其他鍵,我決定要在數字層使用滑鼠鍵。因此我加了一個數字鎖定鍵在右手滑鼠搖桿的西鍵。

<> 可以用 shift+,shift+. 打出,所以可以被移除。

主要層

localhost_4200_layouts

數字層

localhost_4200_layouts (1)

  • ②: 數字層鎖定 / 解除鍵
  • M箭頭: 滑鼠移動
  • S箭頭: 滑鼠捲動
  • LC, MC, RC: 滑鼠左/中/右鍵

CC 裝置管理系統匯出的備份檔: https://github.com/andy23512/setting-files/blob/master/CharaChorder/backup-ONE-v5.1.json

V5.2(將功能鍵放在數字層)

為了讓功能鍵更容易按,我把數字層的左邊的一些按鍵定為功能鍵。

數字層

localhost_4200_layouts

CC 裝置管理系統匯出的備份檔:https://github.com/andy23512/setting-files/blob/master/CharaChorder/backup-ONE-v5.2.json

命名 - 天弦 41 鍵 (英文為 TanChord 41,簡稱 TC41)

因為我為了 Master Forge 創造了另一個注音佈局,為了讓這兩者好辨識,我把這邊的佈局命名為天弦 41 鍵。天是取自我英文名字 Tangent 的簡稱 Tan 的諧音。弦是因為這個佈局主要就是設計來能在 CharaChorder One 這個支援和弦輸入的裝置上使用注音和弦(或稱聲韻並擊)的。41 鍵是因為他用了 41 個鍵(參考倚天 41 鍵的命名)。

其他相關主題

在這個段落,會有一些關於中文打字、注音、並擊或其他為了 CC1 而設的設定。

標點符號

我的注音佈局佔用了一些標點符號鍵,如 [],去映射成注音符號。這會讓對應的標點符號無法被打出。(

在小麥注音裡,解法為利用使用者自訂詞庫功能,為那些標點符號加上新的組合鍵。這是我用的詞庫檔。https://raw.githubusercontent.com/andy23512/setting-files/master/McBopomofo/data.txt

之後就可以使用以下的組合鍵來打出標點符號:

組合鍵輸出
ctrl+,
ctrl+.
ctrl+'
shift+,(<)
shift+.(>)

和弦(並擊)

(移到這篇文章)

注音密碼

注音密碼是一種可以用數個中文字產生的密碼。它用的是標準注音輸入法的佈局上的映射去把中文的注音組合轉為英數符號。所以我們可以用同樣的按鍵序列但用不同的輸入法(標準注音或英文輸入)去打出中文字或對應的注音密碼。

因為注音密碼相依於標準鍵盤,我不能直接在我的注音佈局上直接打出來。所以我用 Ukelele 製作了一個新的佈局來映射 CC1 的輸出到對應的注音密碼。

對應到天弦 41 鍵 V5 的注音密碼佈局如下圖所示:
image

看起來很像有人把鍵盤上的鍵隨便亂排之後的結果,但實際上這是我的注音佈局 V5 與標準鍵盤佈局組合後的結果。

舉例來說,當在天弦 41 鍵 V5 上打出 ㄅㄆㄇㄈ... 時, CC1 實際上是輸出 7890...

            sequenceDiagram
            CC1->>天弦 41 鍵 V5: 7890...
天弦 41 鍵 V5->>輸出: ㄅㄆㄇㄈ...
          

但在標準注音佈局,鍵盤實際上是輸出 1qaz...。(這就是 ㄅㄆㄇㄈ... 對應的注音密碼)

            sequenceDiagram
            鍵盤->>標準注音佈局: 1qaz...
標準注音佈局->>輸出: ㄅㄆㄇㄈ...
          

所以我們就需要一個注音密碼佈局來把 CC1 的輸出 7890... 來映射為對應的輸出 1qaz...。所以在這個佈局上, 7890 鍵就分別是輸出 1qaz

            sequenceDiagram
            CC1->>天弦 41 鍵 V5: 7890...
天弦 41 鍵 V5->>(逆向)標準注音佈局: ㄅㄆㄇㄈ...
(逆向)標準注音佈局->>輸出: 1qaz...(注音密碼)
          

所以在注音密碼佈局上,7890 鍵的輸出就應該是 1qaz,這就是套用天弦 41 鍵 V5 和逆向的標準注音佈局的結果。

upload_b72eeab34a7f164d74dcf73a19b18b3c

自訂快捷鍵

(移到這篇文章

在 Master Forge (M4G) 上的可能的注音解法

(移到這篇文章

琶音問題

琶音功能是在 CharaChorder 和弦後的一個快速按鍵。它可以用來修改和弦輸出,例如變更時態、加上前後綴或者標點符號。

我發現 CharaChorder 的標點符號琶音功能也可能與注音和弦衝突。

舉例來說,在我的天弦 36 鍵 V2 注音佈局中,當我打「問(ㄨㄣ、)」字時,我用注音和弦輸入「ㄨ+ㄣ」(對應的鍵為t+d)後立刻輸入四聲(對應的鍵為;)。這個 ; 鍵就會觸發標點符號琶音功能,因此 CharaChorder 裝置似乎就會輸出空白鍵、; 鍵、左方向鍵、退格鍵、右方向鍵。

(ㄨㄣ 加上空白鍵即會打出了「溫」字。退格鍵就會刪掉這個「溫」字。

目前的變通方式是把琶音功能關掉。


  1. ㄦ 是一個特殊的韻母。它跟其他的聲母或介音並沒有任何可能組合,因此我們可以把它與其他韻母分離看待。 ↩︎