んたのブログ

週末になると出没します。

KensingtonのトラックボールをManjaroで使いたい

Manjaro Linux機ではここしばらくロジクールのM585をメインのマウスとして使ってました。でもMacBook Air手放したことでKensingtonのトラボが空いたんですよ。せっかくだからManjaro Linuxでも使ってみたいなあ、と。
 
で、そのままつなぐとスイッチの機能がこうなります。
 
    MIDDLE   |     戻る
-----------------|-----------------
      左           |      右
 
このMIDDLEと戻るの配置を逆にできないかなあ、とトライしてみました。
 
検索すると色々と出てくるんですが、ほとんどがXorgベースの話なんですよね。ManjaroはWaylandだよなあ、やり方同じなのかなあ、と思っているときに以下のページを見つけました。
 
おお、同じトラボでWaylandベースの話だ!ということで早速参考にさせていただきました。
 
なお、XorgかWaylandかは環境変数から確認しました。
 
$ echo $XDG_SESSION_TYPE
wayland
 
 
evtestコマンドをまず導入して実行。Kensington Expert Wireless TB Mouseを選択してキーコードを取得。
それをもとに /etc/udev/hwdb.d/ 配下に設定ファイルを作ってみました。
 
$ cat /etc/udev/hwdb.d/70-Kensington-TBMouse.hwdb
evdev:name:Kensington Expert Wireless TB Mouse:*
KEYBOARD_KEY_90003=BTN_SIDE
KEYBOARD_KEY_90004=BTN_MIDDLE
 
で、設定ファイルを読み込み。
$ sudo systemd-hwdb update
$
 
と、これで良かったはずなんですが、今回キーの入れ替えはできませんでした。エラーは発生してないし、何が悪いんだろう。まだ調べないと駄目かあ。
調べてる間にキーアサインになれちゃいそう。それはそれでいいか。
 
以下evtest実行時のログ
$ evtest
 〜
/dev/input/event18: Kensington Expert Wireless TB Mouse
 〜
Select the device event number [0-19]: 18
Input driver version is 1.0.1
Input device ID: bus 0x3 vendor 0x47d product 0x8018 version 0x111
Input device name: "Kensington Expert Wireless TB Mouse"
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: time 1672401553.368228, -------------- SYN_REPORT ------------
Event: time 1672401555.002437, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001
Event: time 1672401555.002437, type 1 (EV_KEY), code 272 (BTN_LEFT), value 1
Event: time 1672401555.002437, -------------- SYN_REPORT ------------
Event: time 1672401555.102428, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90001
Event: time 1672401555.102428, type 1 (EV_KEY), code 272 (BTN_LEFT), value 0
Event: time 1672401555.102428, -------------- SYN_REPORT ------------
Event: time 1672401556.416568, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90002
Event: time 1672401556.416568, type 1 (EV_KEY), code 273 (BTN_RIGHT), value 1
Event: time 1672401556.416568, -------------- SYN_REPORT ------------
Event: time 1672401556.558591, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90002
Event: time 1672401556.558591, type 1 (EV_KEY), code 273 (BTN_RIGHT), value 0
Event: time 1672401556.558591, -------------- SYN_REPORT ------------
Event: time 1672401558.190777, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90003
Event: time 1672401558.190777, type 1 (EV_KEY), code 274 (BTN_MIDDLE), value 1
Event: time 1672401558.190777, -------------- SYN_REPORT ------------
Event: time 1672401558.340791, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90003
Event: time 1672401558.340791, type 1 (EV_KEY), code 274 (BTN_MIDDLE), value 0
Event: time 1672401558.340791, -------------- SYN_REPORT ------------
Event: time 1672401559.320894, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90004
Event: time 1672401559.320894, type 1 (EV_KEY), code 275 (BTN_SIDE), value 1
Event: time 1672401559.320894, -------------- SYN_REPORT ------------
Event: time 1672401559.426903, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90004
Event: time 1672401559.426903, type 1 (EV_KEY), code 275 (BTN_SIDE), value 0
Event: time 1672401559.426903, -------------- SYN_REPORT ------------