鍵盤上的單個鍵為每個同時按下的鍵產生額外的按鍵
我最近從 QPAD 購買了 MK-85 機械 USB 鍵盤。鍵盤在 Windows 上完美執行。它在 Syslinux 中完美執行。它在 Linux 上幾乎可以完美執行。Linux 上的唯一問題是單個密鑰行為不端(Gentoo (3.6.11)、Arch Linux 和 Linux Mint (2.6.38) 都受到影響)。
鍵盤是一個 105 鍵的德語佈局鍵盤,有問題的鍵是 Ä 和 ENTER 之間的那個鍵。在美國佈局上,這對應於 key
\
,在德國佈局上,這對應於#
,在斯堪的納維亞佈局上,它是'
.當此鍵與其他鍵一起按下時,它會為同時按下的每個其他鍵產生額外的按鍵。例如,在斯堪的納維亞佈局下,如果我想快速輸入單詞“ don’t ”,我最終會得到:don’‘’t’
可以使用程序 showkeys 觀察該行為:
kb mode was UNICODE [ if you are trying this under X, it might not work since the X server is also reading /dev/console ] press any key (program terminates 10s after last keypress)... keycode 28 release keycode 32 press // d pressed keycode 24 press // o pressed keycode 49 press // n pressed keycode 32 release // d released keycode 43 press // ' pressed keycode 24 release // o released keycode 43 release // ' released keycode 43 press // ' pressed, extra ' produced keycode 49 release // n released keycode 43 release // ' released keycode 43 press // ' pressed, extra ' produced keycode 20 press // t pressed keycode 43 release // ' released keycode 43 press // ' pressed, extra ' produced keycode 20 release // t released keycode 43 release // ' released keycode 43 press // ' pressed, extra ' produced keycode 43 release // ' released (REAL)
它只發生在這個單一的鍵上,不管鍵盤佈局如何。它表現出來的另一種方式是,如果我按住一個鍵,它會重複,然後我按住另一個也應該開始重複的鍵:
aaaaaaaaaakkkkkkkkkkkkk (works as intended) ¨¨¨¨¨¨¨¨¨¨fffffffffffff (works as intended) ''''''''''a'''''''''''' (a is not repeated, instead ' continues)
在 Windows 上不存在此問題:
OnKeyDown, Key code=68, Control keys=, Key name d OnKeyPress d OnKeyDown, Key code=79, Control keys=, Key name o OnKeyPress o OnKeyDown, Key code=78, Control keys=, Key name n OnKeyPress n OnKeyup, Key code=68, Control keys=, Key name d OnKeyDown, Key code=191, Control keys=, Key name ........OEM specific OnKeyPress ' OnKeyup, Key code=79, Control keys=, Key name o OnKeyup, Key code=78, Control keys=, Key name n OnKeyDown, Key code=84, Control keys=, Key name t OnKeyPress t OnKeyup, Key code=191, Control keys=, Key name ........OEM specific OnKeyup, Key code=84, Control keys=, Key name t
你覺得SE怎麼樣?硬體問題?它在 Syslinux 中執行良好,這讓我覺得 Linux 端有問題。有任何指示、想法或更好的調試方法嗎?如果要讓它正常工作需要修補核心,我準備好了。
我試圖為這個錯誤製作一個適當的更新檔。這是核心而不是鍵盤的問題,儘管可以說鍵盤的行為方式很奇怪。無論如何,更新檔已送出到 linux-input 列表進行審核,但還沒有任何評論。
這應該可以解決這裡提到的 QPAD MK-85 的問題,但 Corsair K70、技嘉 Osmium 和其他類似鍵盤也存在同樣的問題。如果您的鍵盤有錯誤,那就太好了,您可以測試更新檔。如果您對其進行測試,請告訴我它是否有效以及您使用的鍵盤,您使用的語言版本也很重要,美國和非美國鍵盤的行為會有所不同。請注意,美國鍵盤上的反斜杠鍵在其他版本的鍵盤上會有其他標籤。
這是來自 linux-input 的帶有更新檔的郵件: