장치가 "변형"되면 ThinkPad X41t의 덮개 버튼이 작동하지 않습니다.

장치가 "변형"되면 ThinkPad X41t의 덮개 버튼이 작동하지 않습니다.

ArchLinux32를 실행하는 ThinkPad X41t가 있습니다. 뚜껑에는 여러 개의 버튼이 있습니다. 나는 그들에게 그것과 함께 제공된 키 코드를 주었다 setkeycodes. 장치는 "변형"될 수 있습니다. 즉, 힌지를 중심으로 180도 회전하고 이렇게 닫힐 수 있습니다. 문제는 장치가 전환될 때 이러한 덮개 버튼이 작동하지 않는다는 것입니다. 보고된 대로 여전히 키코드를 생성 showkey하지만 아무 작업도 수행하지 않습니다. 를 사용하여 evtest다음 두 가지를 확인했습니다.

  1. 뚜껑 버튼은 일반 키보드 버튼과 동일한 이벤트 장치인 "AT Translation 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 ------------
    

또한 변형 이벤트가 이미 발생한 경우 스틱을 사용하여 키보드 키를 눌러 보았지만 아무 것도 수행되지 않았습니다.

따라서 전환 이벤트가 무언가를 실행하면 OS가 해당 특정 장치의 키 누르기를 무시하게 되는 것으로 의심됩니다. 이것이 무엇인지, 어떻게 수행하는지, 그리고 장치가 전환될 때 사용할 수 있도록 덮개 버튼을 예외에 추가하는 방법이 있습니까?

미리 감사드립니다.

답변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입니다. 해당 ID를 찾으면 입력하여 비활성화 xinput disable 11하면 됩니다!

관련 정보