Logitech M545 кнопка-отображение
Я купил Logitech M545 вчера, и он не ведет себя должным образом. На моем старом M705 я мог использовать кнопки большого пальца для перехода назад / вперед в Firefox, Thunar и т. Д., Но с M545 они даже не посылали нормальные коды для нажатий кнопок. Вот что я получаю:
Кнопка назад:
KeyPress event, serial 28, synthetic NO, window 0x7000001,
root 0x2d3, subw 0x0, time 7968516, (47,78), root:(3157,978),
state 0x10, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 28, synthetic NO, window 0x7000001,
root 0x2d3, subw 0x0, time 7968516, (47,78), root:(3157,978),
state 0x50, keycode 40 (keysym 0x64, d), same_screen YES,
XLookupString gives 1 bytes: (64) "d"
XmbLookupString gives 1 bytes: (64) "d"
XFilterEvent returns: False
KeyRelease event, serial 28, synthetic NO, window 0x7000001,
root 0x2d3, subw 0x0, time 7968524, (47,78), root:(3157,978),
state 0x50, keycode 40 (keysym 0x64, d), same_screen YES,
XLookupString gives 1 bytes: (64) "d"
XFilterEvent returns: False
KeyRelease event, serial 28, synthetic NO, window 0x7000001,
root 0x2d3, subw 0x0, time 7968530, (47,78), root:(3157,978),
state 0x50, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Кнопка вперед:
KeyPress event, serial 28, synthetic NO, window 0x7000001,
root 0x2d3, subw 0x0, time 7969328, (47,78), root:(3157,978),
state 0x10, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 28, synthetic NO, window 0x7000001,
root 0x2d3, subw 0x0, time 7969436, (47,78), root:(3157,978),
state 0x50, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Я пробовал с Debian и Ubuntu Vivid, несколько разных ядер.
Как мне переназначить эти кнопки, чтобы привыкнуть к привычному поведению, и как я могу различить их и нажатия клавиш? Кроме того, поскольку обе кнопки отправляют Super_L, как я могу отличить их друг от друга?
Если переназначение означает, что я теряю Super_L с клавиатуры, то пусть будет так, хотя это не идеально.
Есть идеи?
3 ответа
Я только что сделал репозиторий на GitHub, который предоставляет драйвер для M560/M545/M546.
Просто скачайте его, извлеките исходный код в нужную версию ядра и запустите make && sudo make install
, Тогда вы можете использовать xbindkeys-config
чтобы сопоставить это.
Обычно в этом случае вам нужно запустить утилиту Logitech, чтобы перепрограммировать кнопки. Работает нормально через VirtualBox.
(из опыта работы с моим G300 и того факта, что в описании M545 написано, что он программируемый)
Другая возможность - это демон evrouter. Это может изменить события от устройств ввода на лету. Может использоваться для решения проблемы или расширения функциональности кнопок еще больше.
Мне (вроде) удалось решить это.
Создайте "/etc/udev/hwdb.d/90-logitech-m-545.hwdb" со следующим:
# Logitech M545
keyboard:usb:v046DpC52B*
KEYBOARD_KEY_70007=back
KEYBOARD_KEY_700E3=forward
Затем:
udevadm hwdb --update
Отключите приемник и подключите его снова, и кнопки большого пальца теперь работают нормально, по крайней мере, в Firefox.
Это только обходной путь, поскольку он все еще отправляет события клавиатуры, но он делает то, что я в основном хочу, чтобы он делал.
РЕДАКТИРОВАТЬ: исправить код