當裝置「變形」時,ThinkPad X41t 上的蓋子按鍵不起作用

當裝置「變形」時,ThinkPad X41t 上的蓋子按鍵不起作用

我有一台運行 ArchLinux32 的 ThinkPad X41t。蓋子上有幾個按鈕。我給了他們一個帶有 的密鑰代碼setkeycodes。設備可以「變形」——即圍繞鉸鏈旋轉 180 度並像這樣關閉。問題是,當設備轉換時,這些蓋子按鈕不起作用 - 它們仍然產生鍵碼(如 所報告的showkey),但它們不執行任何操作。使用evtest,我確定了兩件事:

  1. 蓋子按鈕與常規鍵盤按鈕屬於同一事件設備,屬於「AT 翻譯集 2 鍵盤」。
  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 ------------
    

當變形事件已經發生時,我也嘗試使用小棒按鍵盤按鍵,但他們也沒有做任何事情。

因此,我懷疑當轉換事件觸發某些事件時,會導致作業系統忽略來自該特定裝置的任何按鍵。有沒有辦法確定這是什麼以及如何做,以及如何將蓋子按鈕添加到此事物的例外中,以便我可以在設備轉換時使用它們?

提前致謝。

答案1

已在 libinput 修復。現在,轉換不會停用常規鍵盤,但蓋子不會按下按鍵,因此這不是問題。

答案2

對於任何遇到相同問題的人來說,我剛剛偶然發現了一個簡單的解決方案。

首先,透過執行尋找平板電腦按鈕的 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

相關內容