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