Как я могу определить, какое устройство / код ключа используется?

Я пытаюсь переназначить функции кнопок мыши 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» или что-то подобное, он просто показывает нажатия клавиш, назначенные кнопке (то есть нажатие клавиш). 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`
2
задан 7 January 2014 в 01:12

2 ответа

Поработав с этим некоторое время и прочитав об этом, я обнаружил, что G700 фактически сохраняет профиль кнопки на мыши, поэтому нажатие кнопки 12 фактически буквально отправляет комбинацию клавиш Ctrl + W. Я использовал машину с Windows и программное обеспечение Logitechs Gaming, чтобы вернуть кнопкам их состояние по умолчанию, а затем они начали сообщать о «кнопке 12» или о чем-то другом в xev.

0
ответ дан 7 January 2014 в 01:12

Существует также приложение solaar , которое программирует устройства Logitech с помощью «универсального» беспроводного USB-разъема Logitech. Он имеет аналогичные возможности и программирует плагин для сопряжения с устройствами и для запуска некоторых настроек устройства. На моей установке 14.04 он поддерживает двустороннюю связь - например, он объявляет, сколько заряда батареи остается в каждом сопряженном устройстве.

0
ответ дан 7 January 2014 в 01:12

Другие вопросы по тегам:

Похожие вопросы: