Laptop

當設備“轉換”時,ThinkPad X41t 上的蓋子鍵不起作用

  • December 15, 2018

我有一台執行 ArchLinux32 的 ThinkPad X41t。在蓋子上,它有幾個按鈕。我用setkeycodes. 設備可以“變形” - 即圍繞鉸鏈旋轉 180 度並像這樣關閉。問題是,當設備被轉換時,那些蓋子按鈕不起作用 - 它們仍然產生鍵碼(如 報告showkey),但它們不做任何事情。使用evtest,我確定了兩件事:

  1. 蓋子按鈕與正常鍵盤按鈕屬於相同的事件設備,屬於“AT Translated Set 2 keyboard”。
  2. 被“改造”是一個可辨識的事件。這是來自 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,你應該很高興去!

引用自:https://unix.stackexchange.com/questions/447493