Logitech M535 unter Linux

Logitech M535 unter Linux

Ich habe mir gerade eine Bluetooth-Maus Logitech M535 gekauft. Sie hat ein schwenkbares Mausrad, das aber mit den Tasten „Zurück“ und „Vorwärts“ belegt ist. Damit sie horizontal scrollt, 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 werden auf diese Weise die Scroll-Buttons nicht wiederholt.

Darüber hinaus verfügt die Maus über eine zusätzliche Taste, die ALT+TAB sendet (über eine „falsche“ Tastatur):

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 diese Schaltfläche an etwas anderes binden?

Ich habe versucht, es zu verwenden xbindkeys, konnte es aber nicht dazu bringen, ALT+TAB abzufangen. Außerdem möchte ich, selbst wenn ich es könnte, nur die gefälschte Tastatur von der Maus abfangen und konnte keine Möglichkeit finden, Geräte darin zu filtern xbindkeys.

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

Antwort1

Ich habe das horizontale Scrollen gelöst, indem ich eine Key-Mapper-GUI-Software verwendet und dann die linke Radtaste (TASTENSEITE) dem Rad (rechts, 1) und die rechte Radtaste dem Rad (links, 1) zugeordnet habe.

Antwort2

Ich habe es mit hwdb gelöst. Ich habe Folgendes 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 schalte die Maus aus und wieder an. Jetzt funktioniert es, ich habe die Meta-Taste (Windows) gebunden.

Ich denke, diese Lösung könnte so gestaltet werden, dass sie xinput set-button-mapnicht erforderlich ist (und vielleicht kann ich das Problem lösen, dass sich die Tasten nicht wiederholen) ... Aber ich konnte die Tastencodes für die Tasten 6 und 7 (nach links und rechts scrollen) nicht finden. 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 die Dezimalwerte für BTN_SIDE, BTN_EXTRA, BTN_BACK, BTN_FORWARD, BTN_6, BTN_7(wie in definiert /usr/include/linux/input-event-codes.h) ohne Erfolg ausprobiert.

Eine andere Maus, bei der das horizontale Scrollen sofort funktioniert, hat die 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?

verwandte Informationen