Я пытаюсь переназначить функции на кнопках моей мыши Logitech G700. Используя xinput -list, я вижу, что это считается двумя устройствами (четыре, если вы используете проводные / беспроводные различия).
48 will@will-laptop ~]$xinput --list
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Microsoft Natural® Ergonomic Keyboard 4000 id=10 [slave pointer (2)]
⎜ ↳ SynPS/2 Synaptics TouchPad id=15 [slave pointer (2)]
⎜ ↳ Logitech USB Receiver id=17 [slave pointer (2)]
⎜ ↳ Logitech USB Receiver id=18 [slave pointer (2)]
Проблема в том, что для кнопок есть нестандартные назначения, поэтому xev не показывает такие вещи, как «кнопка 12» или что-то в этом роде, оно просто показывает нажатия клавиш, назначенные кнопке (т.е. KeyPress Ctrl_L, KeyPress «w», KeyRelease Ctrl_L, KeyRelease «w»). Он не показывает устройство, поэтому я не уверен, как переназначить, что должен делать ключ. Кроме того, насколько я могу судить, нет никакого способа сделать аппаратный сброс встроенных профилей памяти, поэтому я не могу сбросить мышь, чтобы на самом деле дать мне «кнопку 7» или что-то еще.
Я использую Ubuntu 13.10.
Вот что я получаю от xev при попытке кнопки «наклонять колесо влево».
KeyPress event, serial 40, synthetic NO, window 0x4a00001,
root 0x90, subw 0x0, time 13142771, (115,109), root:(2844,1831),
state 0x10, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 40, synthetic NO, window 0x4a00001,
root 0x90, subw 0x0, time 13142771, (115,109), root:(2844,1831),
state 0x14, keycode 25 (keysym 0x77, w), same_screen YES,
XLookupString gives 1 bytes: (17) ""
XmbLookupString gives 1 bytes: (17) ""
XFilterEvent returns: False
KeyRelease event, serial 40, synthetic NO, window 0x4a00001,
root 0x90, subw 0x0, time 13142935, (115,109), root:(2844,1831),
state 0x14, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 40, synthetic NO, window 0x4a00001,
root 0x90, subw 0x0, time 13142935, (115,109), root:(2844,1831),
state 0x10, keycode 25 (keysym 0x77, w), same_screen YES,
XLookupString gives 1 bytes: (77) "w"
XFilterEvent returns: False`
Существует также приложение solaar, в котором программы Logitech используют «универсальный» USB-разъем Logitech. Он имеет схожие возможности и программирует штепсель для подключения к устройствам и запускает некоторую конфигурацию устройства. На моей настройке 14.04 он поддерживает двухстороннюю связь. Например, он сообщает, сколько энергии аккумулятора остается в каждом сопряженном устройстве.