장치가 '변형'되면 ThinkPad X41t의 덮개 키가 작동하지 않습니다

장치가 '변형'되면 ThinkPad X41t의 덮개 키가 작동하지 않습니다

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

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

이미 변형 이벤트가 발생했을 때 작은 스틱을 사용하여 키보드 키를 눌러도 아무 작업도 수행하지 않았습니다.

따라서 변환 이벤트가 무언가를 트리거하면 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. !

관련 정보