Heutige Computermäuse verfügen häufig über eine Vielzahl von Buttons, zum Beispiel einen sogenannten Thumb-Button, welcher sich seitlich an der Maus befindet und mit dem Daumen gedrückt werden kann.
In diesem Beispiel wird erklärt, wie man einen Mouse-Button neu belegen kann. Zunächst muss man dafür den Identifier der Maus ermitteln. Dies geht am einfachsten mit dem Befehl:
xinput list
Eine Ausgabe sieht kann dabei wie folgt aussehen:
⎡ Virtual core pointer id=2 [master pointer (3)]
⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)]
⎜ ↳ Lenovo Ultraslim Plus Wireless Keyboard & Mouse id=10 [slave pointer (2)]
⎜ ↳ Lenovo Ultraslim Plus Wireless Keyboard & Mouse Consumer Control id=11
⎜ ↳ ASUS Laser GAMING MOUSE id=15 [slave pointer (2)]
In diesem Fall geht es um die ASUS Laser GAMING MOUSE.
Um welchen Button es sich handelt kann man, sofern man noch keine Neubelegung von diesem angelegt hat, mithilfe von xinput test ermitteln. Der Befehl erwartet den zuvor ermittelten Identifier als Parameter:
xinput test "ASUS Laser GAMING MOUSE"
Ähnlich wie bei der Anwendung xev wird dabei jede Aktion der Maus ausgegeben, daher kann es sinnvoll sein diese einzuschränken:
xinput test "ASUS Laser GAMING MOUSE"|grep button
Eine mögliche Ausgabe wäre:
button release 9
Daraufhin kann die aktuell konfigurierte Belegung ausgegeben werden:
xinput get-button-map "ASUS Laser GAMING MOUSE"
In diesem Falle wäre die Ausgabe:
1 2 3 4 5 6 7 8 9
Möchte man nun die mittlere Maustaste auf den zuvor ermittelten Button 9 legen, kann dies mit dem set-button-map Parameter erfolgen:
xinput set-button-map "ASUS Laser GAMING MOUSE" 1 2 3 4 5 6 7 8 2
Die Maustasten werden wie folgt hochgezählt: 1: links, 2: Mitte, 3: rechts.
Mit dem obigen Befehl wurde der Button 9 mit der Funktion der mittleren Maustaste belegt.
Da die Änderung nur temporär ist, kann bei Bedarf eine entsprechende Xorg-Konfiguration erstellt werden:
/etc/X11/xorg.conf.d/40-mouse.conf
Section "InputClass"
Identifier "ASUS Laser Gaming Mouse"
MatchProduct "ASUS Laser GAMING MOUSE"
Driver "libinput"
Option "ButtonMapping" "1 2 3 4 5 6 7 8 2"
EndSection
Im Bereich MatchProduct kann der zuvor ermittelte Identifier angegeben werden.
In diesem Beispiel wurde die mittlere Maustaste zusätzlich auf einen anderen Mouse-Button gelegt. Mittels Xbindkeys und xvkbd lassen sich allerdings auch Funktionen wie Vor- und Zurückblättern auf Maustasten legen.
~/.xbindkeysrc
# Mouse Buttons "xvkbd -xsendevent -text "\[XF86Back]"" m:0x0 + b:8 "xvkbd -xsendevent -text "\[XF86Forward]"" m:0x0 + b:9
In obigen Beispiel würden Button 8 mit Zurück- und Button 9 mit Vorwärtsblättern belegt. Dazu dürfte allerdings nicht wie zuvor beschrieben die Konfiguration für Button 9 umgemapped werden.