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」

関連情報