Logitech M535 unter Linux

932
neclepsio

Ich habe gerade eine Logitech M535 Bluetooth-Maus gekauft. Es hat ein Kipprad, aber es ist auf "Zurück" - und "Vorwärts" -Tasten abgebildet. Damit es als horizontales Scrollen funktioniert, habe ich dieses Skript geschrieben:

#! /bin/dash  MOUSE_ID=`xinput list | grep -o 'M535.*pointer' | sed 's/^.*id=\([0-9]*\)[\t].*$/\1/')` xinput set-button-map $MOUSE_ID 1 2 3 4 5 8 9 6 7 10 11 12 

Leider wiederholen sich auf diese Weise Rolltasten nicht.

Darüber hinaus verfügt die Maus über eine zusätzliche Schaltfläche, die ALT + TAB (über eine "falsche" Tastatur) sendet:

ignazio@ignazio-HP:~$ xinput | grep M535 ⎜ ↳ Bluetooth Mouse M336/M337/M535 id=15 [slave pointer (2)] ↳ Bluetooth Mouse M336/M337/M535 id=16 [slave keyboard (3)] ignazio@ignazio-HP:~$ xinput test 16 key press 64  key press 23  key release 23  key release 64  

Wie kann ich diesen Button an etwas anderes binden?

Ich habe versucht, es zu verwenden xbindkeys, konnte aber nicht ALT + TAB abfangen. Selbst wenn ich könnte, möchte ich nur die falsche Tastatur von der Maus abfangen, und ich habe keine Möglichkeit gefunden, Geräte zu filtern xbindkeys.

Ich weiß auch, dass es Kernelmodule für ähnliche Logitech-Mäuse gibt (siehe https://github.com/CzBiX/logitech-m560 ). Dieses wird jedoch nicht unterstützt.

1

1 Antwort auf die Frage

1
neclepsio

Ich habe es mit hwdb gelöst. Ich habe erstellt /etc/udev/hwdb.d/10-m535.hwdb:

evdev:input:b0005v046DpB016e1203-* KEYBOARD_KEY_700e2=reserved KEYBOARD_KEY_7002b=leftmeta 

Dann:

sudo udevadm hwdb --update sudo udevadm trigger 

Und schalten Sie die Maus aus und wieder ein. Es funktioniert jetzt, ich habe die Meta-Taste (Windows) gebunden.

Ich denke, diese Lösung könnte so gemacht werden, dass sie xinput set-button-mapnicht benötigt wird (und vielleicht kann ich das Problem lösen, dass sich die Tasten nicht wiederholen) ... Aber ich konnte die Schlüsselcodes für die Tasten 6 und 7 nicht finden (nach links und rechts scrollen). Ich habe die Scancodes gefunden:

evdev:input:b0005v046DpB016e1203-* KEYBOARD_KEY_700e2=reserved KEYBOARD_KEY_7002b=leftmeta KEYBOARD_KEY_90004=??? (scroll left - mouse button 6) KEYBOARD_KEY_90005=??? (scroll right - mouse button 7) 

Ich habe versucht, die Dezimalwerte für BTN_SIDE, BTN_EXTRA, BTN_BACK, BTN_FORWARD, BTN_6, BTN_7(wie definiert in /usr/include/linux/input-event-codes.h) ohne Glück.

Eine andere Maus mit horizontalem Bildlauf, die sofort einsatzbereit ist, hat folgende evtestAusgabe:

Event: time 1522616506.145899, -------------- SYN_REPORT ------------ Event: time 1522616507.105926, type 2 (EV_REL), code 6 (REL_HWHEEL), value 1 Event: time 1522616507.105926, -------------- SYN_REPORT ------------ Event: time 1522616508.191962, type 2 (EV_REL), code 6 (REL_HWHEEL), value -1 

Kann ich irgendwie ein EV_RELEreignis mit einem Wert für den Schlüsselcode in der hwdb-Datei angeben?