跳至主要内容

gg

· 閱讀時間約 3 分鐘

我的鍵盤有時候按 G 會跳兩下,導致我常常想搜尋東西的時候不小心就跳進了 ggooggle.com,讓我不堪其擾。

我有把鍵盤拆開清掃了一下,好像有改善一點點,但 gg 的問題還是時不時就會出現。

Linux 的神奇指令

就在我苦惱的時候,我發現了 Linux 上的一個神奇指令:xkbset

xkbset 可以設定一個叫做「debounce delay」(防彈跳延遲)的參數,簡單來說就是設定一個冷靜期,告訴鍵盤同一個鍵在這段時間內只能觸發一次。

於是我一行指令 xkbset bo 40,把延遲時間設定成 40 毫秒,就永遠解決這個問題了!

這個延遲時間需要測試一下,太短的話沒有用,太長的話會妨礙正常打字。我在鋼琴上同音反覆可以每秒 14 下,那大約是 71 毫秒,如果設定高於這個時間,就會影響我手速的展現了。

在 Windows 上怎麼辦?

當然是 Linux 上面會才有 xkbset 這種神奇指令。但如果你的 Windows 電腦鍵盤會跳兩下怎麼辦?

在 Windows 的設定中,有個「忽略意外按鍵」的功能;它就跟 xkbset 一樣,可以忽略短時間內的重複按鍵。聽起來很棒對吧?但問題是它的最低延遲時間只能設定 0.3 秒(300 毫秒)!

(最高的設定值是 2.0 秒?誰會想把一個鍵設定成 2 秒才能按一次?)

0.3 秒的延遲,意味著同一個鍵一秒最多只能觸發 3 次。這根本低於正常打字速度太多,完全無用!這樣只是把原本 ggooggle 的問題變成 gogle 而已。

在 Windows 上,要真正解決問題,只能尋求第三方的軟體;或者,買一台新鍵盤。

macOS 呢?

至於 macOS,系統完全沒有提供這方面的選項,連像 Windows 那種半殘的版本都沒有。

諷刺的是,macOS 可能是最需要這功能的作業系統。回想 MacBook 換成超薄「蝴蝶鍵盤」的那幾年(2016-2019),鍵盤跳兩下的災情超級嚴重,在網路上隨便一找就可以看到哀鴻遍野。這個問題甚至還催生出了「Unshaky」這個自由軟體。

這問題實在太嚴重,Apple 最終不得不承認設計缺陷,推出了鍵盤維修計畫,但是維修計畫也只涵蓋購買四年內的 MacBook。四年後鍵盤又壞了怎麼辦?該換新機囉!

喋喋不休的鍵盤

後來我才知道這個現象有個正式名稱叫「Keyboard Chatter」(喋喋不休的鍵盤)。

從一個小小的鍵盤問題,就可以看出三大作業系統的設計哲學:

  • 🐧 Linux:「這是你的電腦,工具在這,你自己搞定!」
  • 🪟 Windows:「為了保護你免於鍵盤跳兩下,我讓它連跳一下都很難。」
  • 🍎 Mac:「什麼鍵盤問題?是你該換新機了吧!」