Tipps und Tricks zur Logitech MX Revolution-Maus (und anderen) unter Linux

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:

  1. Führt im Terminal folgenden Befehl aus: xev | grep button
  2. Es öffnet sich ein kleines Fenster mit einem schwarzen Quadrat darin.
  3. 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:
    1. Strg wird gedrückt (und gehalten)“
    2. + wird gedrückt“
    3. 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.

6 Kommentare

  1. 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:

      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

      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

  2. 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.

  3. 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):

      # Scrollrad nach links kippen: ZURUECK
      "xte 'key XF86Back'"
       m:0x0 + b:6
      
      # Scrollrad nach links kippen: VORWAERTS
      "xte 'key XF86Forward'"
       m:0x0 + b:7
      

      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 und 12 (statt 6 und 7) geändert. Nach einem Rechnerneustart waren es aber, soweit ich mich erinnere, wieder die alten. Probier also vielleicht mal die Codes 11 und 12 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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.