Я решил использовать hwdb. Я создал /etc/udev/hwdb.d/10-m535.hwdb
:
evdev:input:b0005v046DpB016e1203-* KEYBOARD_KEY_700e2=reserved KEYBOARD_KEY_7002b=leftmeta
Затем:
sudo udevadm hwdb --update sudo udevadm trigger
И выключи и включи мышку. Теперь это работает, я привязал мета (Windows) ключ.
Я думаю, что это решение можно было бы сделать так, чтобы xinput set-button-map
оно не требовалось (и, возможно, я могу решить проблему, состоящую в том, что кнопки не повторяются) ... Но я не смог найти коды клавиш для кнопок 6 и 7 (прокрутка влево и вправо). Я нашел коды сканирования:
evdev:input:b0005v046DpB016e1203-* KEYBOARD_KEY_700e2=reserved KEYBOARD_KEY_7002b=leftmeta KEYBOARD_KEY_90004=??? (scroll left - mouse button 6) KEYBOARD_KEY_90005=??? (scroll right - mouse button 7)
Я попытался десятичные значения BTN_SIDE
, BTN_EXTRA
, BTN_BACK
, BTN_FORWARD
, BTN_6
, BTN_7
(как определено в /usr/include/linux/input-event-codes.h
) не повезло.
Другая мышь с горизонтальной прокруткой, работающая из коробки, имеет следующий evtest
вывод:
Event: time 1522616506.145899, -------------- SYN_REPORT ------------ Event: time 1522616507.105926, type 2 (EV_REL), code 6 (REL_HWHEEL), value 1 Event: time 1522616507.105926, -------------- SYN_REPORT ------------ Event: time 1522616508.191962, type 2 (EV_REL), code 6 (REL_HWHEEL), value -1
Можно ли как-то указать EV_REL
событие со значением для кода ключа в файле hwdb?