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.

Это только обходной путь, поскольку он все еще отправляет события клавиатуры, но он делает то, что я в основном хочу, чтобы он делал.

РЕДАКТИРОВАТЬ: исправить код

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