Logitech MX1000
Die MX1000-Lasermaus von Logitech® wird in den verschiedenen Linux-Distributionen unterschiedlich eingerichtet. Dies hier ist eine Anleitung
speziell für OpenSuse.
Der Nebeneffekt des hier aufgezeigten Weges liegt darin, daß alle Maustasten nach den eigenen Wünschen konfiguriert werden können.
Diese Beschreibung wurde mit folgenden Distributionen getestet: |
OpenSuse 10.3 (32Bit) |
Inhaltsverzeichnis
Benötigte Tools
- xev: Optional. In den Distributionen enthalten
- xmodmap: Optional. In den Distributionen enthalten
- xvkbd: Benötigt. Installation mit Yast. Repository: oss
- lomoco: Benötigt. Installation mit Yast. Repository: oss
- xbindkeys: Benötigt. Muß selber compiliert werden. Quelle: http://hocwp.free.fr/xbindkeys/xbindkeys.html
Die Datei /etc/X11/xorg.conf (Dieser Abschnitt kann bei OpenSuse 11.0 übersprungen werden)
Diese Datei muß editiert werden, um mit dem gewünschten Maustreiber arbeiten zu können. Dazu muß der User Administratorrechte besitzen.
Systemverwaltungsmodus
- Terminal öffnen
- Befehl eingeben, um in den Systemverwaltungsmodus zu gelangen: su
- Root-Passwort eingeben
Bearbeiten von xorg.conf
- Terminal im Systemverwaltungsmodus öffnen
- Datei mit einem Editor öffnen: kate /etc/X11/xorg.conf
- Nach erfolgten Änderungen die Datei speichern
- Kate beenden
- Systemverwaltungsmodus im Terminal verlassen durch Eingabe von: exit
- Terminal beenden
- Abmelden
- Rechner neu starten
Code in xorg.conf
In diesem Auszug der xorg.conf sind die relevanten Stellen fett markiert.
Section "Files" InputDevices "/dev/gpmdata" InputDevices "/dev/input/mice" EndSection
Section "ServerFlags" Option "AllowMouseOpenFail" "on" EndSection
Section "InputDevice" Identifier "mouse_dummy" Driver "void" Option "Device" "/dev/input/mice" EndSection
Section "InputDevice" Identifier "MX1000" Driver "evdev" Option "Name" "Logitech USB R*" EndSection
Section "ServerLayout" Identifier "Layout[all]" InputDevice "Keyboard[0]" "CoreKeyboard" InputDevice "mouse_dummy" InputDevice "MX1000" "CorePointer" Option "Clone" "off" Option "Xinerama" "off" Screen "Screen[0]" EndSection
Erläuterungen zum Code
Section "Files"
- InputDevices "/dev/input/mice"
- Über diese Datei greift das System auf die angeschlossenen Mäuse zu
Section "ServerFlags"
- Option "AllowMouseOpenFail" "on"
- So soll der X-Server auch starten, wenn keine Maus angeschlossen ist
Section "InputDevice"
- Identifier "MX1000"
- Name der Maus. Kann beliebig gewählt werden
- Driver "evdev"
- Es wird der evdev-Maustreiber verwendet. Dieser Treiber ist in der Distribution vorhanden.
- Option "Name" "Logitech USB R*"
- Es ist extrem wichtig, hier den richtigen internen Namen der Maus anzugeben, sonst startet der X-Server nicht mehr. [siehe Hinweise]
Die Firma Logitech® verwendet für die MX1000 verschiedene interne Namen. Um die korrekte Schreibweise zu ermitteln, gibt man in ein Terminal folgenden Befehl ein:
cat /proc/bus/input/devices.
In der erscheinenden Liste sucht man nach irgendetwas, das aussieht wie "Logitech USB Receiver". Das wird dann unter Option "Name" eingetragen, aber exakt so, wie es am Bildchirm steht unter strikter Beachtung der Gross- Kleinschreibung. Wenn man bequem ist, kann man hinter das R des Receiver auch einen Stern machen. Dann ist es egal, wie Receiver geschrieben wird. Hat man allerdings ein Gerät angeschlossen, das z.B. Logitech USB RammaDamma heißt, sind Probleme vorprogrammiert. Deshalb, am besten den kompletten Namen schreiben!
In vielen Anleitungen steht noch die Option ZAxisMapping. Diese Option ist hier nicht mehr notwendig, da das Mausrad automatisch richtig auf die X-Events 4 und 5 gelegt wird.
Noch ein Problem gibt es, für das der X-Server verantwortlich ist. Er erwartet eine Standard-Maus, akzeptiert aber keine Maus, die mit dem evdev-Treiber läuft, als solche. Und da er unsere MX1000 nicht als Standard anerkennen will, generiert er sich geschwind selber eine. Ein Blick in die Datei /var/log/xorg.0.log belegt ein solches Unterfangen. Hier hilft das Einfügen einer Dummy-Maus, die alle Eingaben ins Nichts schickt:
- Identifier "mouse_dummy"
- Name der Dummy-Maus ist beliebig wählbar
- Driver "void"
- ab ins Nirwana mit den Tastendrücken
- Option "Device" "/dev/input/mice"
Section "ServerLayout"
- InputDevice "mouse_dummy"
- Der Name muß derselbe sein, der in Section "InputDevice" definiert ist
- InputDevice "MX1000" "CorePointer"
- Hier wird noch zusätzlich definiert, daß die MX1000 doch die erste Maus am Platze ist, also der CorePointer.
So, nachdem das alles eingestellt ist, sollte die MX1000 richtig laufen. Der nächste Schritt ist die Konfiguration der Tastenbelegung entsprechend der eigenen Vorstellungen.
Maustasten und X-Events
Drückt man eine Maustaste oder eine Taste auf der Tastatur, so wird ein zugehöriges X-Event ausgelöst. Das ist nichts anderes als eine Nummer, an Hand derer das System erkennt, welche Taste gedrückt worden ist.
xev
Zum Ermitteln der Events bietet sich das Programm xev an, welches welches bei OpenSuse10.3 zur Standardausstattung gehört.
X-Events der MX1000
Linke Taste | ||
Mitteltaste | ||
Rechte Taste | ||
Rad vor | ||
Rad zurück | ||
Daumen vor | ||
Daumen Mitte | ||
Daumen zurück | ||
Scroll vor | ||
Scroll zurück | ||
Rad links | ||
Rad rechts |
Erläuterungen zur Tabelle
Die MX1000 unterscheidet zwei Betriebsarten:
- SmartScroll eingeschaltet.
- Die Tasten ober- und unterhalb des Mausrades werden mit den Events 4 und 5 belegt und simulieren demnach das Mausrad.
- SmartScroll ausgeschaltet.
- Die Scroll-Tasten haben eigene Events und stehen damit frei für Belegungswünsche.
Sowohl das Drücken als auch das Loslassen einer Taste löst ein Event aus. Diese Events sind in der Regel identisch. Es sei der Vollständigkeit halber erwähnt, daß bei aktiviertem SmartScroll folgende Tasten beim Drücken und Loslassen unterschiedliche X-Events zeigen:
- Scroll vor
- Scroll zurück
- Mausrad links
- Mausrad rechts
Wichtig für das weitere Vorhaben sind allein die Events, die durch das Drücken der Tasten hervorgerufen werden.
Belegung der Maustasten nach eigenen Wünschen
Es gibt viele Möglichkeiten, die Maustasten sinnvoll zu belegen. Anhand einer dieser Möglichkeiten wird hier aufgezeigt, wie das weitere Vorgehen ist. Ist eine andere Belegung gewünscht, müssen nur die nun folgenden Schritte entsprechend angepasst werden.
Wunschbelegung
Linke Maustaste | Linksklick |
Mittlere Maustaste | frei |
Rechte Maustaste | Rechtsklick |
Rad vor | Seite nach oben scrollen |
Rad zurück | Seite nach unten scrollen |
Rad links | Seite nach links scrollen |
Rad rechts | Seite nach rechts scrollen |
Daumentaste rückwärts | In Konqueror und Firefox Chronik zurückblättern |
Daumentaste vorwärts | In Konqueror und Firefox Chronik vorblättern |
Daumentaste mitte | Start Firefox |
Autostartscript
Einige Anweisungen müssen automatisch ausgeführt werden, wenn sich der User am System anmeldet. Dazu bietet sich das Autostart-Verzeichnis an. In diesem Verzeichnis wird nun ein Script erstellt, das dann jedesmal nach der Anmeldung automatisch abgearbeitet wird.
- Auf Arbeitsplatz klicken
- Persönlicher Home-Ordner auswählen
- Unter Anicht die Option "versteckte Dateien markieren" aktivieren
- Ordner .kde auswählen
- Ordner Autostart auswählen
- Rechtsklick - Neu erstellen -Textdatei
- Beliebigen Namen eingeben. Zum Beispiel: Mauskonfiguration.sh (Das .sh nicht vergessen)
- Ordner Autostart auswählen
- Rechtsklick auf die Textdatei - Öffnen mit - Kate
- Folgenden Code eingeben
#!/bin/sh #+++++++++++++++++++++++MX1000++++++++++++++++++++++++++++++++++++++++++++
- Datei speichern
- Rechtsklick auf die Textdatei - Eigenschaften - Berechtigungen
- Ausführbar ankreuzen
Damit ist ein leeres Shellscript erstellt. Gefüllt wird es später.
SmartScroll
Diese Betriebsart der MX1000 ermöglicht es, die Tasten oberhalb und unterhalb des Mausrades zum Auf- und Abscrollen der Seite zu verwenden. Um SMS einzuschalten, ergänzen wir unser Autostartscript:
#!/bin/sh #+++++++++++++++++++++++MX1000++++++++++++++++++++++++++++++++++++++++++++ # ++++++++++++++++++Einschalten Smart Scroll++++++++++++++++++++++++++++++ /usr/bin/lomoco --sms
Das Programm lomoco ist in OpenSuse10.3 enthalten und kann ggf. über Yast installiert werden.
Firefox und das Mausrad
Firefox erwartet für das Rechts-Linksklicken des Mausrades die X-Events 6 und 7. Diese Vorraussetzung ist allein durch die Aktivierung von SMS erfüllt. Was nun tatsächlich passiert, kann in Firefox eingestellt werden:
- Firefox starten
- In die Adressleiste eingeben about:config
mousewheel.horizscroll.withnokey.action auf 0 setzen mousewheel.horizscroll.withnokey.numlines auf -3 setzen
Damit ist das Mausrad entsprechend der Wunschbelegung konfiguriert.
Eine Erklärung zu den Einstellungen in der about:config kann [hier] nachgelesen werden. Ergänzend sei noch erwähnt, daß das Vorzeichen bei den numlines dafür verantworlich ist, ob nach rechts oder nach links gescrollt wird. Einstellen je nach Belieben!
xmodmap (Optional)
Ist bei der Maus SmartScroll ausgeschaltet, so löst ein Recht-Linksdrücken des Mausrades die Events 13 und 14 aus. Firefox erwartet aber 6 und 7. Um dieses Dilemma zu umgehen, wird das Programm xmodmap eingesetzt. Damit werden dem System andere X-Events vorgegaukelt. Folgender Befehl, eingetragen in das Autostartscript, würde das Firefox wieder zur Kommunikation mit dem Mausrad anregen:
/usr/bin/xmodmap -e "pointer = 1 2 3 4 5 13 14 8 9 10 11 12 6 7"
Es darf allerdings nicht unerwähnt bleiben, daß hier eine gewisse Experimentierfreudigkeit gefordert ist. Denn das Ergebnis ist oft nicht so, wie man es sich vorstellt.
xvkbd
Dieses virtuelle Keyboard wird benötigt, um mit xbindkeys arbeiten zu können. Es ist als RPM in OpenSuse10.3 enthalten und kann demnach über Yast installiert werden
xbindkeys
Die restlichen Maustasten werden nun mit xbindkeys zugewiesen.
- Programm [herunterladen]
- Entpacken
- Terminal öffnen und über den bekannten Dreisatz installieren: ./configure - make - (und im Systemverwaltungsmodus) make install
- Das Programm über das Autostartscript starten:
#!/bin/sh #+++++++++++++++++++++++MX1000++++++++++++++++++++++++++++++++++++++++++++ #++++++++++++++++++Einschalten Smart Scroll+++++++++++++++++++++++++++++++ /usr/bin/lomoco --sms #++++++++++++++++++++Tastenmapping 1:1 +++++++++++++++++++++++++++++++++ #/usr/bin/xmodmap -e "pointer = 1 2 3 4 5 6 7 8 9 10 11 12 13 14" #++++++++++++++++Tastenzuweisungen mit xbindkeys++++++++++++++++++++++++++ /usr/local/bin/xbindkeys
Damit ist übrigens das Autostartscript fertig. Das Tastenmapping ist auskommentiert, da es in dem Fall nicht notwendig ist.
.xbindkeysrc
In dieser Konfirurationsdatei stehen nun die Zuweisungen für die Tasten drin.
- Textdatei im persönlichen Ordner erstellen und der Datei den Namen .xbindkeysrc geben.
- Diese Textdatei mit Kate öffnen
- Folgenden Code eingeben:
# ++++++++++++++++++++++++++++++++MX1000++++++++++++++++++++++++++++++++++++ # +++++++++++++++++++++++++++xbindkeys - Konfiguration++++++++++++++++++++++ # +++++++++++++++++++++++++++++++für Firefox++++++++++++++++++++++++++++++++ # +++++++++++Daumentaste zurück ==> Chronik zurück++++++++++++++++++++++++ "/usr/bin/xvkbd -xsendevent -text "\[Alt_L]\[Left]"" m:0x0 + b:8 # +++++++++++Daumentaste vor ==> Chronik vorwärts+++++++++++++++++++++++++ "/usr/bin/xvkbd -xsendevent -text "\[Alt_L]\[Right]"" m:0x0 + b:9 # +++++++++++Daumentaste Mitte ==> Start Firefox++++++++++++++++++++++++++ "firefox" m:0x0 + b:10
Erläuterungen zum Code
Das vorhin gestartete xbindkeys läuft im Hintergrund und fragt periodisch seine Konfigurationsdatei .xbindkeysrc ab. Schauen wir uns diesen Teil an:
# +++++++++++Daumentaste zurück ==> Chronik zurück++++++++++++++++++++++++ "/usr/bin/xvkbd -xsendevent -text "\[Alt_L]\[Left]"" m:0x0 + b:8
Wenn "Daumentaste zurück" gedrückt wird, so empfängt das Programm den entsprechenden X-Event. In dem Fall ist es der Event Nr.8 von der Maus. Damit wird der in Anführungszeichen stehende Befehl ausgeführt: Das virtuelle Keyboard sendet die Tastenkombination Alt + <-- ans System. Und diese Tastenkombination wird sowohl vom Konqueror, als auch von Firefox interpretiert als Anweisung, in der Chronik zurückzublättern.
Das Gleiche passiert bei Event 9, nur daß diesmal vorgeblättert wird.
Das Event 10, also die mittlere Dauentaste, startet mit dem Befehl "firefox" den Webbrowser.
Man sieht, der Konfiguration mit xbindkeys sind kaum Grenzen gesetzt. Man muß nur herausfinden, welche Taste(nkombination) was in welchem Programm bewirkt. Und natürlich, wie die Tastenkürzel für xsendevent heißen.
Hinweise
Risiken und Nebenwirkungen
Diese Anleitung ist eigentlich als Gedankenstütze für den Autor entstanden, der öfter mal was neu installieren muß. Es kann nicht garantiert werden, daß diese Anleitung ohne Risiken und Nebenwirkungen ist. Die Benutzung erfolgt deshalb ausschließlich auf eigene Gefahr. Diese Anleitung sollte nur von dem verwendet werden, der sich dieser Risiken bewußt ist und der notfalls gegensteuern kann.
Gefahren beim Arbeiten mit der xorg.conf
Zum Konfigurieren der Maus ist eine Bearbeitung der Datei xorg.conf notwendig. Änderungen an dieser Datei können dafür sorgen, daß der X-Server nicht mehr startet.
Es wird daher empfohlen, eine Sicherungskopie von xorg.conf zu erstellen. Ebenso sollte der Anwender wissen, wie die Sicherung auch ohne graphischen Bildschirm, also im Terminal, zurückkopiert werden kann.
Vorher Ausprobieren! Das erspart unter Umständen viel Ärger.
Links
Beim Erstellen dieser Anleitung waren folgende Webseiten hilfreich:
Allgemein: http://wiki.archlinux.org/index.php/MX1000_Buttons OpenSuse vor 10.3 http://www.linux-club.de/viewtopic.php?t=15176&highlight=mx1000 Dummy: https://bugs.freedesktop.org/show_bug.cgi?id=1 Dummy: http://www.conan.de/touchscreen/evtouch.html2507 about:config http://www.firefox-browser.de/wiki/About:config lomoco: http://www.lomoco.org/ xvkbd: http://homepage3.nifty.com/tsato/xvkbd/ xmodmap: http://www.xfree86.org/4.2.0/xmodmap.1.html xbindkeys: http://hocwp.free.fr/xbindkeys/xbindkeys.html