배경 정보: 저는 맞춤 패치 버전이 포함된 VEIKK A50 그리기 태블릿을 사용하고 있습니다.이 드라이버버튼 지원을 추가합니다. 태블릿은 연결되면 3개의 evdev 장치를 등록합니다. 펜 이벤트는 하나를 거치고, 버튼 이벤트는 두 번째를 거치며, 세 번째는 아직 작업을 시작하지 않은 제스처 패드용이라고 가정합니다.
버튼 이벤트는 다음을 사용하여 훌륭하게 감지할 수 있습니다 evtest
.
$ evtest /dev/input/event7
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x2feb product 0x3 version 0x100
Input device name: "VEIKK A50 Pen"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 256 (BTN_0)
Event code 257 (BTN_1)
Event code 258 (BTN_2)
Event code 259 (BTN_3)
Event code 260 (BTN_4)
Event code 261 (BTN_5)
Event code 262 (BTN_6)
Event code 263 (BTN_7)
Event code 330 (BTN_TOUCH)
Event code 331 (BTN_STYLUS)
Event code 332 (BTN_STYLUS2)
Event type 3 (EV_ABS)
Event code 0 (ABS_X)
Value 0
Min 0
Max 32768
Resolution 1
Event code 1 (ABS_Y)
Value 0
Min 0
Max 32768
Resolution 1
Event code 24 (ABS_PRESSURE)
Value 0
Min 0
Max 8192
Properties:
Property type 0 (INPUT_PROP_POINTER)
Property type 1 (INPUT_PROP_DIRECT)
Testing ... (interrupt to exit)
Event: time 1593877860.725627, type 1 (EV_KEY), code 256 (BTN_0), value 1
Event: time 1593877860.725627, -------------- SYN_REPORT ------------
Event: time 1593877860.821631, type 1 (EV_KEY), code 256 (BTN_0), value 0
Event: time 1593877860.821631, -------------- SYN_REPORT ------------
Event: time 1593877861.053666, type 1 (EV_KEY), code 257 (BTN_1), value 1
Event: time 1593877861.053666, -------------- SYN_REPORT ------------
Event: time 1593877861.133790, type 1 (EV_KEY), code 257 (BTN_1), value 0
Event: time 1593877861.133790, -------------- SYN_REPORT ------------
Event: time 1593877861.477718, type 1 (EV_KEY), code 258 (BTN_2), value 1
Event: time 1593877861.477718, -------------- SYN_REPORT ------------
Event: time 1593877861.549708, type 1 (EV_KEY), code 258 (BTN_2), value 0
Event: time 1593877861.549708, -------------- SYN_REPORT ------------
Event: time 1593877861.918267, type 1 (EV_KEY), code 259 (BTN_3), value 1
Event: time 1593877861.918267, -------------- SYN_REPORT ------------
Event: time 1593877861.990011, type 1 (EV_KEY), code 259 (BTN_3), value 0
Event: time 1593877861.990011, -------------- SYN_REPORT ------------
Event: time 1593877862.766219, type 1 (EV_KEY), code 260 (BTN_4), value 1
Event: time 1593877862.766219, -------------- SYN_REPORT ------------
Event: time 1593877862.885867, type 1 (EV_KEY), code 260 (BTN_4), value 0
Event: time 1593877862.885867, -------------- SYN_REPORT ------------
Event: time 1593877863.301937, type 1 (EV_KEY), code 261 (BTN_5), value 1
Event: time 1593877863.301937, -------------- SYN_REPORT ------------
Event: time 1593877863.397949, type 1 (EV_KEY), code 261 (BTN_5), value 0
Event: time 1593877863.397949, -------------- SYN_REPORT ------------
Event: time 1593877864.694091, type 1 (EV_KEY), code 262 (BTN_6), value 1
Event: time 1593877864.694091, -------------- SYN_REPORT ------------
Event: time 1593877864.830257, type 1 (EV_KEY), code 262 (BTN_6), value 0
Event: time 1593877864.830257, -------------- SYN_REPORT ------------
Event: time 1593877865.182508, type 1 (EV_KEY), code 263 (BTN_7), value 1
Event: time 1593877865.182508, -------------- SYN_REPORT ------------
Event: time 1593877865.278161, type 1 (EV_KEY), code 263 (BTN_7), value 0
Event: time 1593877865.278161, -------------- SYN_REPORT ------------
그러나 libinput debug-events
또는 를 사용할 경우 xev
아무 버튼을 눌러도 아무 일도 일어나지 않습니다. 태블릿이 libinput이 아닌 evdev를 통해 직접 이동하도록 사용자 정의 X11 구성 파일을 추가했지만 xev
아무것도 감지되지 않았습니다.
/dev/input/event6
또한 BTN_STYLUS( 두 개의 스타일러스 버튼 중 하나를 누를 때 전송됨) 또는 KEY_A와 같은 알려진 작업 이벤트를 출력하도록 드라이버 코드의 버튼을 변경해 보았습니다 . libinput이나 xev 모두 이를 감지하지 못합니다.