Laptop
當設備“轉換”時,ThinkPad X41t 上的蓋子鍵不起作用
我有一台執行 ArchLinux32 的 ThinkPad X41t。在蓋子上,它有幾個按鈕。我用
setkeycodes
. 設備可以“變形” - 即圍繞鉸鏈旋轉 180 度並像這樣關閉。問題是,當設備被轉換時,那些蓋子按鈕不起作用 - 它們仍然產生鍵碼(如 報告showkey
),但它們不做任何事情。使用evtest
,我確定了兩件事:
- 蓋子按鈕與正常鍵盤按鈕屬於相同的事件設備,屬於“AT Translated Set 2 keyboard”。
- 被“改造”是一個可辨識的事件。這是來自 evtest 的報告:
Event: time ..., type 5 (EV_SW), code 1 (SW_TABLET_MODE), value 1 Event: time ..., -------------- SYN_REPORT ------------ Event: time ..., type 5 (EV_SW), code 1 (SW_TABLET_MODE), value 0 Event: time ..., -------------- SYN_REPORT ------------
當使用小棒已經發生轉換事件時,我還嘗試按鍵盤鍵,他們也沒有做任何事情。
所以我懷疑當被轉換的事件觸發某些東西時,這會導致作業系統忽略來自這個特定設備的任何按鍵。有沒有辦法確定這是什麼以及如何做到這一點,以及如何將蓋子按鈕添加到這個東西的異常中,以便在設備轉換時使用它們?
提前致謝。
在 libinput 中修復。現在轉換不會禁用正常鍵盤,但蓋子不會按下鍵,所以這不是問題。
對於遇到同樣問題的人來說,我剛剛偶然發現了一個簡單的解決方案。
首先,通過執行找到平板電腦按鈕的 xinput 設備 ID
xinput
。它應該看起來像這樣:⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ TPPS/2 IBM TrackPoint id=10 [slave pointer (2)] ⎜ ↳ Wacom Serial Penabled Pen stylus id=12 [slave pointer (2)] ⎜ ↳ Wacom Serial Penabled Pen eraser id=13 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Sleep Button id=8 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=9 [slave keyboard (3)] ↳ ThinkPad Extra Buttons id=11 [slave keyboard (3)]
我不確定這些 ID 是否在所有情況下都相同,但在我的情況下,我正在尋找的條目的 ID 為 11。一旦你有了它,通過輸入禁用它
xinput disable 11
,你應該很高興去!