Я купил 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 с клавиатуры, то так и будет, хотя это и не идеально.
Есть идеи?
Обычно необходимо выполнить утилиту 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.
Это - только обходное решение, поскольку оно все еще отправляет события клавиатуры, но оно делает то, что я главным образом хочу, чтобы оно сделало.
РЕДАКТИРОВАНИЕ: зафиксируйте код
Я просто сделал repo на GitHub, которые обеспечивают драйвер для M560/M545/M546.
Просто загрузка это и источник контроля к правильной версии ядра, и выполненный make && sudo make install
. Затем можно использовать xbindkeys-config
для отображения его.