hwdb를 사용하여 REL_HWHEEL을 BTN_* 이벤트 또는 키 조합으로 다시 매핑할 수 있습니까?

hwdb를 사용하여 REL_HWHEEL을 BTN_* 이벤트 또는 키 조합으로 다시 매핑할 수 있습니까?

4방향 스크롤 휠이 있는 마우스(Logitech M705)가 있습니다. 왼쪽/오른쪽 키는 기본적으로 버튼이므로 실제 수평 스크롤 휠과 다릅니다. 나는 가로 스크롤 기능을 사용하지 않기 때문에(단일 버튼 누르기 이벤트를 통해서도 아님) 브라우저의 탭 탐색(보통 CTRL+PgUp 또는 PgDown)과 같은 다른 목적으로 사용하고 싶습니다. 예를 들어 X11에서는 imwheel을 사용하는 것이 상당히 쉽지만 Wayland에서는 더 복잡해 보입니다. 나머지 키 누르기는 EV_MSC/EV_KEY 이벤트를 실행하고 KEYBOARD_KEY 재매핑에 사용할 수 있는 스캔 코드를 내뱉는 반면, REL_HWHEEL 버튼은 EV_REL을 실행한 다음 evtest로 테스트할 때 +1 또는 -1을 실행합니다. 즉, 마우스 왼쪽 버튼은 다음과 같습니다.

Event: time 1674593064.411235, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001
Event: time 1674593064.411235, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1

왼쪽 스크롤 휠의 경우:

Event: time 1674593069.069576, type 2 (EV_REL), code 6 (REL_HWHEEL), value -1
Event: time 1674593069.069576, type 2 (EV_REL), code 12 (REL_HWHEEL_HI_RES), value -120

사용자 정의 hwdb 파일을 사용하여 다시 매핑할 수 있나요? 그렇다면 어떻게 다시 매핑합니까? 키 조합을 직접 사용하거나 BTN_EXTRA2 및 BTN_EXTRA3과 같은 키 조합을 사용할 수 있습니다.

evtest는 또한 장치에 대해 알려줍니다.

Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x46d product 0x101b version 0x111
Input device name: "Logitech M705"
Supported events:
  Event type 0 (EV_SYN)
  Event type 1 (EV_KEY)
    Event code 272 (BTN_LEFT)
    Event code 273 (BTN_RIGHT)
    Event code 274 (BTN_MIDDLE)
    Event code 275 (BTN_SIDE)
    Event code 276 (BTN_EXTRA)
    Event code 277 (BTN_FORWARD)
    Event code 278 (BTN_BACK)
    Event code 279 (BTN_TASK)
    Event code 280 (?)
    Event code 281 (?)
    Event code 282 (?)
    Event code 283 (?)
    Event code 284 (?)
    Event code 285 (?)
    Event code 286 (?)
    Event code 287 (?)
  Event type 2 (EV_REL)
    Event code 0 (REL_X)
    Event code 1 (REL_Y)
    Event code 6 (REL_HWHEEL)
    Event code 8 (REL_WHEEL)
    Event code 11 (REL_WHEEL_HI_RES)
    Event code 12 (REL_HWHEEL_HI_RES)
  Event type 4 (EV_MSC)
    Event code 4 (MSC_SCAN)

건배, 베른트

답변1

libinput에 대한 질문을 제기했습니다. 아마도 개발자가 도움을 줄 수 있을 것입니다.
https://gitlab.freedesktop.org/libinput/libinput/-/issues/868

나는 같은 문제에 직면했다"로지텍 M500".

관련 정보