Ich besitze seit einigen Jahren eine Maus-Tastatur-Kombination von Logitech, die MX5500 Revolution. Mittlerweile sogar schon die zweite, da nach fast zwei Jahren die linke Maustaste den Geist aufgegeben hatte. Die Maus dieser Kombination wurde auch einzeln als „MX Revolution“ verkauft. Im Folgenden möchte ich besonders auf meine Erfahrungen mit dieser Maus unter Linux eingehen. Dabei ist die verwendete Distribution relativ egal, solange ihr auf die im Artikel genannten Tools zugreifen könnt.
Zumindest der 2. Teil über die Belegung der Sondertasten der Maus unter Linux sollte aber auch auf die meisten anderen Mäuse mit zusätzlichen Tasten anwendbar sein.
1. Das Mausrad
Die Maus hat ein besonderes Mausrad, das sich mittlerweile auch in einigen anderen Logitech-Produkten wiederfindet, man kann es nämlich in drei verschiedenen Modi betreiben:
- „Frei laufend“ (also ohne den sonst üblichen Widerstand),
- mit Widerstand und ab einer bestimmten Scrollgeschwindigkeit frei laufend,
- oder ganz klassisch immer mit Widerstand.
Diese Modi lassen sich unter Windows über die SetPoint-Software umschalten und konfigurieren, Linux-Nutzer schauen leider erstmal in die Röhre. Aber wie das im Linux-Universum ja so häufig ist, ist man in der Regel nicht der Erste mit einem Problem, und so stieß ich nach einiger Recherche auf das kleine Tool „revoco“. Auf SourceForge wird zwar nur der Quellcode angeboten, er lässt sich jedoch problemlos kompilieren:
# Heruntergeladenes Archiv entpacken ts@till-pc ~/Downloads % tar xvfj revoco-0.6.tar.bz2 revoco-0.6/ revoco-0.6/.gitignore revoco-0.6/Makefile revoco-0.6/revoco.c revoco-0.6/mx-revo-full-lsusb.txt # Verzeichnis wechseln ts@till-pc ~/Downloads % cd revoco-0.6 # Kompilieren ts@till-pc ~/Downloads/revoco-0.6 % make cc -Os -DVERSION=\"0.6\" -Wall -c -o revoco.o revoco.c cc -s revoco.o -o revoco # ...und da ist es: ts@till-pc ~/Downloads/revoco-0.6 % ls Makefile mx-revo-full-lsusb.txt revoco* revoco.c revoco.o
Mithilfe dieses Tools kann man auch unter Linux zwischen den Modi wechseln. Wenn ihr das Programm ohne Parameter aufruft, wird euch angezeigt, welche Möglichkeiten es euch bietet. Damit ist es dann eigentlich kinderleicht zu bedienen.
ts@till-pc ~/Downloads/revoco-0.6 % ./revoco Revoco v0.6 - Change the wheel behaviour of Logitech's MX-Revolution mouse. Usage: revoco free free spinning mode revoco click click-to-click mode revoco manual[=button[,button]] manual mode change via button revoco auto[=speed[,speed]] automatic mode change (up, down) revoco battery query battery status revoco mode query scroll wheel mode revoco reconnect initiate reconnection Prefixing the mode with 'temp-' (i.e. temp-free) switches the mode temporarily, otherwise it becomes the default mode after power up. […]
2. Die zusätzlichen Maustasten
Wie die meisten modernen Mäuse verfügt die MX Revolution über zusätzliche Sondertasten:
- Ein nach links und rechts kippbares Mausrad
- Zwei Daumentasten
- Ein Daumenrad, das sich entweder nach vorne oder hinten „schieben“ lässt, oder in der Mittelstellung drücken lässt (ähnlich wie ein Scrollrad, es springt jedoch immer wieder in seine Ursprungsposition zurück)
Diese Tasten lassen sich unter Windows mehr oder weniger frei belegen, natürlich mithilfe der SetPoint-Software. Da diese für Linux nicht verfügbar ist, muss man auch hier wieder zu einem anderen Tool greifen. Ich benutze hierfür xbindkeys in Kombination mit xte. Beide lassen sich in den meisten Distributionen über die Paketverwaltung installieren, xte steckt oft in einem Paket namens „xautomation“. Außerdem könnte das Tool xev für euch interessant sein, wenn die Button-Codes, die ich für meine Maus ermittelt habe, aus irgendwelchen Gründen für euch nicht passen. Auch das könnt ihr meist über die Paketverwaltung installieren.
2.1. Button-Codes ermitteln
Wie oben bereits angedeutet, könnt ihr versuchen, diesen Schritt zunächst zu überspringen und einfach meine ermittelten Codes unten übernehmen. Sollten die nicht passen, geht ihr folgendermaßen vor:
- Führt im Terminal folgenden Befehl aus:
xev | grep button
- Es öffnet sich ein kleines Fenster mit einem schwarzen Quadrat darin.
- Bewegt die Maus in das Fenster und drückt die Sondertasten der Maus. Im Terminal seht ihr dann, welche Tasten welche Button-Codes haben. Bei mir sah das zum Beispiel so aus:
state 0x0, button 6, same_screen YES state 0x0, button 6, same_screen YES
Ich habe also Taste 6 gedrückt (und wieder losgelassen), das war bei mir ein Kippen des Mausrads nach links. Notiert euch am Besten irgendwo, welche Taste welchen Code hat.
2.2. .xbindkeysrc erstellen
xbindkeys wird über eine Konfigurationsdatei gesteuert, die standardmäßig .xbindkeysrc
heißt und in eurem Homeverzeichnis liegt. Legt die Datei also an und kopiert zunächst mal folgendes hinein:
# Scrollrad nach links kippen: ZURUECK "xte 'key XF86Back'" m:0x0 + b:6 # Scrollrad nach links kippen: VORWAERTS "xte 'key XF86Forward'" m:0x0 + b:7 # Daumenrad nach vorne: ZOOM + "xte 'keydown Control_L' 'key plus' 'keyup Control_L'" m:0x0 + b:13 # Daumenrad-Klick: ZOOM RESET "xte 'keydown Control_L' 'key 0' 'keyup Control_L'" m:0x0 + b:16 # Daumenrad nach hinten: ZOOM - "xte 'keydown Control_L' 'key minus' 'keyup Control_L'" m:0x0 + b:15 # Daumentaste hinten: NAECHSTER TAB (STRG+TAB) "xte 'keydown Control_L' 'key Tab' 'keyup Control_L'" m:0x0 + b:8 # Daumentaste vorne: VORHERIGER TAB (STRG+SHIFT+TAB) "xte 'keydown Control_L' 'keydown Shift_L' 'key Tab' 'keyup Shift_L' 'keyup Control_L'" m:0x0 + b:9
Das ist meine .xbindkeysrc. Ich werde sie euch jetzt erklären, damit ihr sie anschließend an eure Bedürfnisse anpassen könnt. Ein Blick auf die Manpage von xte kann sicher auch nicht schaden.
- Wenn ich mein Mausrad nach links kippe (Button 6), wird der Befehl
"xte 'key XF86Back'"
ausgeführt. Das simuliert das Drücken einer Zurück-Taste, würde also z.B. einen Browser veranlassen, eine Seite zurück zu springen. - Wenn ich das Daumenrad nach vorne drücke (Button 13), wird der Befehl
"xte 'keydown Control_L' 'key plus' 'keyup Control_L'"
ausgeführt. Damit werden folgende Tastendrücke simuliert:- „
Strg
wird gedrückt (und gehalten)“ - „
+
wird gedrückt“ - „
Strg
wird losgelassen“
Viele Programme verwenden die Tastenkombination
Strg
++
zum Zoomen. Daher habe ich sie mir auf mein Daumenrad gelegt. - „
- Wenn ich die vordere Daumentaste (Button 9) drücke, wird die Tastenkombination
Strg
+Shift
+Tab
simuliert, was in den meisten Browsern rückwärts zwischen den Tabs wechselt. Der xte-Befehl ist ähnlich aufgebaut wie oben der Zoom-Befehl.
2.3. xbindkeys automatisch starten
Vergesst nicht, xbindkeys beim Start eures Systems auszuführen, z.B. über die Autostart-Funktion eurer Desktopumgebung. Unter KDE habe ich dazu eine Datei namens xbind-startup.sh
im Verzeichnis ~/.kde/Autostart
angelegt, mit folgendem Inhalt:
#!/bin/bash xbindkeys -f /home/ts/.xbindkeysrc &
Passt auf jeden Fall den Pfad zur Konfigurationsdatei an, der wird bei euch wahrscheinlich anders lauten. Wahrscheinlich könnt ihr den Parameter zur Konfigurationsdatei auch einfach weglassen, wenn die .xbindkeysrc im Homeverzeichnis liegt. Achtet aber darauf, dass am Ende der zweiten Zeile das &
-Zeichen stehen bleibt; es sorgt dafür, dass xbindkeys im Hintergrund laufen kann und nicht den Systemstart blockiert.
Denkt außerdem daran, die xbind-startup.sh
ausführbar zu machen, z.B. über das Terminal (chmod +x ~/.kde/Autostart/xbind-startup.sh
) oder den Filemanager eurer Wahl.
3. Zum Abschluss…
Das waren die kleinen Tools, die ich unter Linux für meine Maus einsetze. xbindkeys wird auch mit vielen anderen Mäusen und deren Sondertasten zusammenarbeiten können, wenn ihr die Button-Codes wie oben beschrieben individuell für euer Gerät bestimmt; insofern ist xbindkeys allgemein ein ziemlich cooles Tool und ein Must-have auf Linux-Desktopsystemen. Wenn ihr Fragen, Verbesserungen und/oder Anregungen habt, freue ich mich wie immer über einen Kommentar.
Vielen dank für die ausführliche Anleitung!
Für Linux Mint XFCE, habe ich folgende Anpassungen gemacht:
Datei nach Verzeichnis Download kopieren oder herunterladen Adresse:
http://sourceforge.net/projects/revoco/
Dann folgende Befehle in der Konsole ausführen:
cd ~/Downloads
tar xvfj revoco-0.6.tar.bz2
cd revoco-0.6
sudo apt-get install build-essential
make
ls
________________________________________________________________________________
Mithilfe dieses Tools kann man auch unter Linux zwischen den Modi wechseln.
Wenn ihr das Programm ohne Parameter aufruft, wird euch angezeigt, welche Möglichkeiten es euch bietet.
Damit ist es dann eigentlich kinderleicht zu bedienen.
________________________________________________________________________________
Aufruf des Programmes ohne weitere Angaben
./revoco
gibt die verfügbaren Befehle aus:
Revoco v0.6 – Change the wheel behaviour of Logitech’s MX-Revolution mouse.
Usage:
revoco free free spinning mode
revoco click click-to-click mode
revoco manual[=button[,button]] manual mode change via button
revoco auto[=speed[,speed]] automatic mode change (up, down)
revoco battery query battery status
revoco mode query scroll wheel mode
revoco reconnect initiate reconnection
Prefixing the mode with ‚temp-‚ (i.e. temp-free) switches the mode
temporarily, otherwise it becomes the default mode after power up.
[…]
Folgende Befehle funktionieren unter Linux Mint 17 XFCE
sudo ./revoco manual
sudo ./revoco auto
sudo ./revoco free
Autostart einrichten:
Folgenden versteckten Ordner erstellen /home/hans/.revoco-0.6/
und die Dateien hinein kopieren.
Einen Autostrteintrag erzeugen (Einstellungen/Sitzungs&Startverhalten/Autostart)
Name: MX Revolution
Beschreibung: Logitech Wheel Treiber
Aufruf beim Autostart mittels:
sudo /home/hans/.revoco-0.6/revoco auto
sudo /home/hans/.revoco-0.6/revoco free
sudo /home/hans/.revoco-0.6/revoco manual
Viel Erfolg
Hey Michael,
danke für deine Ergänzungen! Eine Anmerkung von mir noch dazu:
Hast du das so ausprobiert, funktioniert das? Ich kann es jetzt gerade auf die Schnelle nicht testen, aber das
sudo
vor dem Befehl führt ja (wenn man sudo nicht anders konfiguriert) dazu, dass man nach dem Benutzerpasswort gefragt wird. Im worst case könnte demzufolge der gesamte Startvorgang „stecken bleiben“, weil sudo beim Hochfahren unsichtbar im Hintergrund auf die Eingabe des Benutzerpassworts wartet.Aber davon abgesehen muss man revoco eigentlich auch gar nicht in den Autostart setzen –
./revoco [modus]
sorgt schließlich schon dafür, dass der gewählte Modus der Standard-Modus der Maus wird (will man den Modus nur temporär ändern, müsste man ja./revoco temp-[modus]
ausführen, wie der Info-Text das sagt).Schöne Grüße
Till
Hallo Till,
ja das funktioniert, bei meinen System Linux Mint XFCE wird beim Start nicht nach den SUDO Passwort gefragt.
Ich habe den Autostarteintrag mal auf /home/hans/.revoco-0.6/revoco auto geändert und es läuft.
Betreffend des Autostarteintrages habe ich da wohl etwas fehlinterpretiert, und muss dir zustimmen, es läuft auch ohne Autostarteintrag.
In der Regel, müsste ein Aufruf des Programmes mit den entsprechenden Parameter, reichen.
Passe mir gerade Linux Mint XFCE an. Leider habe ich noch keine brauchbare Lösung gefunden, wie ich die Logitech MX Revolution, unter Linux Mint XFCE ausreichend betreiben kann. So habe ich auf der mittleren Taste, absolut unnötige Funktionen. Die ich noch nicht deaktivieren konnte.
Ich glaube unter Ubuntu 12.04 gab es mal eine Möglichkeit die MX Revolution ausreichend zu betreiben. Sprich, man konnte alle Zusatztasten der Maus, in einen Grafischen Tool (GUI) ändern, ohne großartig in den Conf Dateien herumzuwurschteln.
Hallo Till,
habe jetzt nach deiner Anleitung meine Logitech MX Revoltution, mit entsprechen Befehlen ausgestattet.
Leider werden bei meiner Maus, nicht alle Tasten gefunden (xev | grep button).
Es fehlen folgende Tasten:
Der kleine Taster hinter dem mittleren Mausrad und die beiden Taster des mittleren Mausrades (links rechts).
Hast du eine Ahnung woran dieses liegen könnte?
Hey,
die kleine Taste (mit dem „Lupensymbol“) habe ich auch noch nicht belegt bekommen. Das Kippen des Mausrades kann ich aber bei mir mithilfe von xbindkeys mit Funktionen belegen (und das habe ich ja auch getan, wie du oben sehen kannst):
Die Button-Codes habe ich wie beschrieben mit xev ermittelt. Hast du darauf geachtet, dass das Fenster von xev („Event Tester“) den Fokus hat, wenn du das Mausrad kippst?
Jetzt wo du mich darauf ansprichst, fällt mir aber noch eine kleine „Besonderheit“ ein, die manchmal bei mir aufgetreten ist: Manchmal haben sich die Buttoncodes für das Kippen des Mausrades (also genau für die beiden Tasten) in
11
und12
(statt6
und7
) geändert. Nach einem Rechnerneustart waren es aber, soweit ich mich erinnere, wieder die alten. Probier also vielleicht mal die Codes11
und12
aus.[edit]Wenn das nicht klappt, führe
xev
mal ohne das| grep button
aus, und schau dir die Ausgabe an oder poste sie hier. Vielleicht bringt uns das ja weiter, denn der grep-Befehl filtert die Ausgabe von xev. Eigentlich ist xev noch um einiges gesprächiger.[/edit]Das wären so meine spontanen Ideen, schreib dann mal, ob du weitergekommen bist 🙂
Grüße
Till
Ich nutze kUbuntu 18.04 und habe es mit revoco probiert. Leider bekomme ich die Fehlermeldung, dass kein hiddev existiert.
Hat nochirgendwer ein Problem mit einer neueren Version von (k)Ubuntu?
Vielen Dank für die Beschreibung, funktioniert! (Linux Mint 19)