Login
Login-Name Passwort


 
Newsletter
Werbung

Fr, 18. April 2003, 00:00

Verwenden einer Wheel-Mouse unter Linux

Mit GPM...

Diese Methode verwendet die Optionen -R und -W von gpm. Diese erzeugen zwei spezielle Dateien (Pipes), /dev/gpmdata und /dev/gpmwheel. Der oben erwähnte Trick besteht darin, X11 nicht mehr direkt auf /dev/mouse, sondern auf /dev/gpmdata zugreifen zu lassen. Dazu ist der Abschnitt "Pointer" in XF86Config abzuändern:

Section "Pointer"
 Protocol "MouseSystems"
 Device "/dev/gpmdata"
EndSection

Für XFree86 4.0 sollte die Konfiguration so aussehen:

Section "InputDevice"
 Identifier "Mouse"
 Driver "mouse"
 Option "Protocol" "MouseSystems"
 Option "Device" "/dev/gpmdata"
 Option "Buttons" "3"
EndSection

Dadurch gibt es keinen Konflikt mehr zwischen Konsole und X11 bei der Kontrolle der Maus. Dieser Trick funktioniert so gut, daß ich ihn auf allen meinen Rechnern verwende. Es ist mir unbegreiflich, warum keine der mir bekannten Distributionen dies automatisch so einrichtet.

Wo ist die Datei XF86Config? SuSE stellt sie ins Verzeichnis /etc, die meisten anderen Distributionen ins Verzeichnis /etc/X11. Manchmal ist sie auch ein Link auf /usr/lib/X11/XF86Config.

Solltest du die Datei nicht finden, versuche mal "locate XF86Config". Hat auch das keinen Erfolg, ist entweder das Programm updatedb, das die Datenbank für locate erzeugt, noch nie gelaufen, oder du hast X11 noch nicht installiert bzw. konfiguriert.

Damit die Änderung von XF86Config wirksam wird, muß der X-Server beendet und neu gestartet werden.

...oder ohne

Die andere Methode nutzt die eingebaute Unterstützung von XFree86 für Radmäuse. Dies funktioniert mit Version 3.3.x ebenso wie mit Version 4.0. Es funktioniert unabhängig von GPM, man kann GPM sogar ganz entfernen, wenn man es nicht anderweitig braucht.

Die einzige Änderung gegenüber der anderen Methode ist der Eintrag in XF86Config:

Section "Pointer"
 Protocol "imps/2"
 Device "/dev/psaux"
 ZAxisMapping 4 5
 Buttons 3
EndSection

Und für XFree86 4.0:

Section "InputDevice"
 Identifier "Mouse"
 Driver "mouse"
 Option "Protocol" "imps/2"
 Option "Device" "/dev/psaux"
 Option "ZAxisMapping" "4 5"
 Option "Buttons" "3"
EndSection

Auch hier gilt natürlich: X-Server neu starten.

Zurück zum "imwheel"-Treiber. Noch funktioniert das Rädchen nicht. Dazu müssen wir noch imwheel starten. Bei Verwendung von gpm sieht das so aus:

imwheel -k -W /dev/gpmwheel

Ohne gpm so:

imwheel -k

Das Programm bringt sich selbst in den Hintergrund. Es sieht zwar so aus, als würde es sich sofort beenden, aber ein "ps ax | grep gpm" sollte jetzt sowohl "gpm" als auch "imwheel" zeigen (oder imwheel allein, falls man auf gpm verzichtet):

21787 ? 0:40 gpm -t imps2 -3 -R -W
25018 ? S 0:00 imwheel -k -W /dev/gpmwheel

Nun kann getestet werden! Starte einen Web-Browser, z.B. Netscape, und lade eine Seite, die länger ist als eine Bildschirmseite. Bewege das Rad auf und ab, und es sollte sich etwas tun.

Anpassungen

Zunächst sollten wir dafür sorgen, daß gpm und imwheel beim nächsten Systemstart automatisch mit den korrekten Einstellungen starten. Dann sollten wir /etc/imwheelrc nach unserem Geschmack anpassen.

GPM permanent aktivieren

Wie das geht, ist von der Distribution abhängig. Bei SuSE bis Version 5.3 gibt es einen Menüpunkt zur Mauskonfiguration in YAST, wo man die neuen Argumente für gpm eingeben kann. Bei SuSE 6.0 und neuer ist dies anscheinend nicht mehr möglich. Daher schenken wir uns YAST, editieren die Datei /etc/rc.config direkt und sorgen dafür, daß die folgenden beiden Zeilen enthalten sind:

START_GPM="yes"
GPM_PARAM=" -t ms3 -m /dev/mouse -3 -R -W"

Alternativ kann man in YAST den Menüpunkt "Administration des Systems/Konfigurationsdatei verändern" wählen, dann F4 drücken und gpm eingeben. Gegenüber der von-Hand-Methode oben gewinnt man nichts.

Bei Red Hat kann man "mouseconfig" aufrufen und als Maustyp "Microsoft IntelliMouse" eingeben. Das genügt jedoch nicht. Zusätzlich muß man /etc/rc.d/init.d/gpm editieren und die Zeile

daemon gpm -t $MOUSETYPE

durch

daemon gpm -t $MOUSETYPE -3 -R -W

ersetzen. Ich habe bei mir in diese Datei ein zusätzliches Kommando aufgenommen, um gpm anzupassen:

gpm -r12 -d100 -q

Das macht die Maus angenehm schnell. Für manche Benutzer vielleicht zu schnell. Aber man kann es ja weglassen.

Bei Debian gibt es die Datei /etc/gpm.conf, die etwa folgendes enthalten sollte (nicht getestet):

device=/dev/psaux
responsiveness=
type=imps2
append="-3 -W -R -l \"a-zA-Z0-9_.:~/\300-\326\330-\366\370-\377\""

Beim nächsten Booten wird diese Änderung wirksam. Es ist aber nicht nötig, extra dafür zu booten. Die Eingabe

/etc/rc.d/gpm stop
/etc/rc.d/gpm start

sollte das neue gpm starten.

IMWheel permanent aktivieren

Auch imwheel muß noch eingetragen werden, und zwar in die X11-Startdatei ~/.xinitrc. Sollte diese Datei nicht existieren, kann man sie entweder anlegen oder die globale Startdatei /etc/X11/xinit/xinitrc oder /usr/lib/X11/xinit/xinitrc ändern. Eine Zeile ist einzufügen:

/usr/local/bin/imwheel -k -W /dev/gpmwheel

Wenn gpm nicht verwendet werden soll, entfällt natürlich die Option -W /dev/gpmwheel.

Verwendest du einen Display-Manager (erkennbar daran, daß der Login direkt unter X11 stattfindet), kannst du den obigen Aufruf auch in die Datei /etc/X11/xdm/Xsetup_0 bzw. /usr/lib/X11/xdm/Xsetup_0 eintragen.

Auch hier kann man, nebenbei bemerkt, die Mausgeschwindigkeit setzen. Bei mir lautet die Zeile:

xset m 8/1 8

was schon extrem schnell ist. Also nur für Leute mit ruhiger Hand ;-)

Um diese Änderung wirksam zu machen, muß der Display-Manager neu gestartet werden. Da dieser in /etc/inittab eingetragen ist, genügt es, mit ps ax seine Prozess-ID zu finden und ihn mit kill zu stoppen. Er startet dann von selbst neu. Neuere Distributionen machen das nicht mehr so; hier kann man wiederum das passende Start-Skript mit dem Argument stop und danach nochmal mit dem Argument start aufrufen.

Sollte imwheel nicht starten, sollte man die Datei ~/.xsession-errors oder die Konsole, auf der X11 gestartet wurde, auf Fehlermeldungen prüfen.

Jetzt fehlt noch die Anpassung von /etc/imwheelrc. Die folgenden Änderungen sind weitgehend Geschmackssache und nur als Vorschläge gedacht. Ich änderte die Zeile für Netscape gleich mal ab, so daß das Scrollen schneller geht:

"Netscape"
None, Down, Page_Down, 1, 1000, 1000
None, Up, Page_Up, 1, 1000, 1000

Die Einträge für XTerm und rxvt änderte ich folgendermaßen:

"rxvt"
None, Up, Shift_L|Page_Up
None, Down, Shift_L|Page_Down
Kommentare (Insgesamt: 0 || Kommentieren )
Pro-Linux
Traut euch!
Neue Nachrichten
Werbung