Wayland 環境でマウスのボタンをキー入力にマッピングする方法
Wayland (libinput?) な環境で、マウスのボタンをクリックした時に、任意のキー入力がされたことにしたい。 hwdb の設定を上書きすればできそう。
例えば、自分の使っているマウスには「戻る」「進む」ボタンがあるが、これをそれぞれ "Home", "End" キーという事にする場合。
/proc/bus/input/devices
を眺めて、マウスの名前と(現在の) event 番号を調べる:... N: Name="Logitech MX Ergo" ... H: Handlers=sysrq kbd mouse0 event1 leds ...
ここでは名前は
Logitech MX Ergo
で、 event 番号は1
evtest
コマンドで、マウスのボタンに対応するコード(?)を調べる:$ sudo evtest /dev/input/event1 ... Testing ... (interrupt to exit) Event: time 1600678269.823814, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90004 Event: time 1600678269.823814, type 1 (EV_KEY), code 275 (BTN_SIDE), value 1 Event: time 1600678269.953810, -------------- SYN_REPORT ------------ Event: time 1600678272.895815, type 4 (EV_MSC), code 4 (MSC_SCAN), value 90005 Event: time 1600678272.895815, type 1 (EV_KEY), code 276 (BTN_EXTRA), value 1 Event: time 1600678272.895815, -------------- SYN_REPORT ------------
「戻る」ボタンが
90004
, 「進む」ボタンが90005
/etc/udev/hwdb.d/99-local.hwdb
をこんな感じに書く:evdev:name:Logitech MX Ergo:* KEYBOARD_KEY_90004=end KEYBOARD_KEY_90005=home
hwdb の更新 & 再読込:
$ sudo systemd-hwdb update && sudo udevadm trigger /dev/input/event1