Allein auf weiter Flur

Leider gibt es nur wenige Applikationen, die den vierten und fünften Maus-Button berücksichtigen. Zu den rühmlichen Ausnahmen zählen zum Beispiel StarOffice und das KDE-Terminalfenster kvt: Das Drehen des Rades hat hier die gleiche Wirkung wie das gemeinsame Drücken der Umschalt- und der Bild-rauf- bzw. Bild-runter-Taste.

Anderen Applikationen kann man diese Fähigkeiten aber beibringen. Unter [2] finden sich Patches für Konfigurations- oder Quellcodedateien einiger Programme. Als Beispiel sei hier der Netscape-Patch (Listing 3) gezeigt. Man kann diesen entweder global in der Netscape-Konfigurationsdatei Netscape.ad (Suchen Sie mit dem Befehl locate danach!) oder für jeden Benutzer einzeln in die Datei ~/.Xdefaults eintragen (empfohlen!). Das Format ist recht einfach:

Sondertaste<Button_X_Aktion>: Kommando

Die Backslashs "\" verbinden mehrere Zeilen zu einer einzigen Zeile, während die Kombination \n eine neue Zeile markiert.

Listing 3

Der Netscape-Patch

Netscape*drawingArea.translations:  #replace    \
  <Btn1Down>: ArmLink()   \n\
  <Btn2Down>: ArmLink()   \n\
  ~Shift<Btn1Up>: ActivateLink()  \n\
  ~Shift<Btn2Up>: ActivateLink(new-window)  \
                                  DisarmLink()  \n\
  Shift<Btn1Up>: ActivateLink(save-only)  \
                                  DisarmLink()  \n\
  Shift<Btn2Up>: ActivateLink(save-only)  \
                                  DisarmLink()  \n\
  <Btn1Motion>: DisarmLinkIfMoved()  \n\
  <Btn2Motion>: DisarmLinkIfMoved()  \n\
  <Btn3Motion>: DisarmLinkIfMoved()  \n\
  <Motion>: DescribeLink()  \n\
  <Btn3Down>: xfeDoPopup()  \n\
  <Btn3Up>: ActivatePopup() \n\
  Ctrl<Btn4Down>: PageUp()\n\
  Ctrl<Btn5Down>: PageDown()\n\
  Shift<Btn4Down>: LineUp()\n\
  Shift<Btn5Down>: LineDown()\n\
  None<Btn4Down>: LineUp()LineUp()LineUp()\
                  LineUp()LineUp()LineUp()\n\
    None<Btn5Down>: LineDown()LineDown()\
         LineDown()LineDown()LineDown()LineDown()\n\
  Alt<Btn4Down>: xfeDoCommand(forward)\n\
    Alt<Btn5Down>: xfeDoCommand(back)\n
Netscape*globalNonTextTranslations: #override\n\
  Shift<Btn4Down>: LineUp()\n\
  Shift<Btn5Down>: LineDown()\n\
  None<Btn4Down>: LineUp()LineUp()LineUp()\
                        LineUp()LineUp()LineUp()\n\
  None<Btn5Down>: LineDown()LineDown()LineDown()\
                      LineDown()LineDown()LineDown()\n\
  Alt<Btn4Down>: xfeDoCommand(forward)\n\
  Alt<Btn5Down>: xfeDoCommand(back)\n

Nun ist das manuelle Korrigieren von Dutzenden oft gebrauchter Programme keine zufrieden stellende Lösung. Alle, die das Kompilieren und Installieren eines neuen Programms nicht scheuen, sollten deshalb IMWheel benutzen. IMWheel ist ein Programm, welches die Konvertierung der Maus-Buttons 4 und 5 auf beliebige Tastenkombinationen übernimmt. Der Kasten "Installation von IMWheel" hilft über die Installationshürden hinweg.

Installation von IMWheel

IMWheel wurde von Jonathan Atkins geschrieben und kann von [3] entweder als tar- oder RPM-Paket herunter geladen werden. Das Programm steht unter der GPL und ist aktuell in der Version 0.9.6 erhältlich. Das Paket enthält nicht nur die Quellen für IMWheel selbst, sondern auch Patches für die Bibliothek libgpm und das Programm gpm. Für die Logitech Cordless Wheel Mouse sind diese beiden Änderungen jedoch nicht zu gebrauchen und führen zum Beispiel im Falle einer Suse-6.2-Distribution zu einer Fehlermeldung beim Start des Midnight Commanders:

mc: error in loading shared libraries:
    /usr/lib/libgpm.so.1: undefined symbol: stdscr

Ich empfehle deshalb den Download des Pakets imwheel-0.9.6-nogpm.tar.gz von [4]. Nach dem Download entpackt man den Tarball mit

tar xfz imwheel-0.9.6-nogpm.tar.gz

ins Verzeichnis imwheel. Beim Studium der Dokumentation merkt man, dass es am Makefile kaum noch etwas zu verändern gibt, das Installationsverzeichnis INSTALLDIR ist mit /usr/local/bin gut gewählt. Nach einem make sieht die Installation als root wie folgt aus:

Matrix:/tmp/imwheel # make && make install
ls: gpm-imwheel: No such file or directory
install -m 755 -s imwheel /usr/local/bin
Shall I setuid root the imwheel executable [N/y]?N
## This should be OK...if you have not altered the Makefile! ;)
## /tmp is the best place for the pidfile this way.
##  That's the way it is now.
+ install -m 644 -o root imwheelrc /etc/imwheelrc
+ install -m 644 imwheelrc /root/.imwheelrc
install -m 644 imwheel.1 /usr/local/man/man1/imwheel.1

Die Frage, ob imwheel setuid root installiert werden soll, kann mit N beantwortet werden, da dies nur für das Abschießen eines anderen laufenden imwheels beim Starten des Programms nötig ist. Allerdings wird dies nur dann von imwheel ausgeführt, wenn ihm die Option --wheel-fifo (siehe ImWheel-Manpage) mitgegeben wird. Diese Option ist aber nicht für die Logitech-Wheel-Mäuse gedacht, sondern für die Microsoft Intellimouse Wheel. IMWheel muss nun bei jedem X-Server-Start geladen werden. Dies erreicht man durch den Eintrag /usr/local/bin/imwheel am Ende der Datei ~/.xinitrc (bzw. ~/.xsession bei grafischem Login).

Konfiguration des Konfigurierers

IMWheel wird global über die Datei /etc/imwheelrc gesteuert; eine persönliche Konfiguration für einzelne Benutzer ist über die Datei ~/.imwheelrc möglich. Dieses File besteht aus einzelnen Sektionen, die wie folgt aufgebaut sind:

<Fensteridentifikation><Tasten-Aktion (Eingabe)>, <Maus-Aktion (Eingabe)>, \ <Tasten-Aktion (Ausgabe)>, <weitere Optionen>

Zur Fensteridentifikation kann man den Fenstertitel, -Klassen- oder -Ressourcennamen benutzen. Zusätzlich darf man das Jokerzeichen .* im Namen heran ziehen.

<Tasten-Aktion (Eingabe)> und <Tasten-Aktion (Ausgabe)> bestehen aus X-KeySyms, wobei mehrere KeySyms durch das Pipe-Symbol "" zu einer UND-Verknüpfung werden. Zusätzlich gibt es das Schlüsselwort None, was "keine Taste gedrückt" bedeutet.

Bei Maus-Aktion (Eingabe) haben Sie die Wahl zwischen Up (nach Vorn drehen) und Down (nach Hinten drehen). Das heißt: Dreht sich das Rad, dann sucht imwheel nach einem Konfigurationseintrag für das aktuelle Fenster. Die zum Zeitpunkt der Rad-Bewegung gedrückten Tasten und die Richtung des Rades werden mit den Einträgen verglichen, und wenn es eine Übereinstimmung gibt, wird <Tasten-Aktion (Ausgabe)> an das Fenster geschickt. Existieren mehrere Einträge, die auf das aktuelle Fenster angewandt werden können, dann wird der erste gefundene Eintrag benutzt.

Falls kein Eintrag für das Fenster existiert, greift der generische Eintrag .* am Ende der Konfigurationsdatei. Dieser soll bewirken, dass sich die meisten Applikationen bei Rad-Bewegungen gleich verhalten und sich nach Möglichkeit immer der Scrollbalken bewegen lässt. Soll imwheel ein Fenster ignorieren, dann benutzt man das imwheelrc-Kommando @Exclude. Weitere Konfigurationsmöglichkeiten sind in der imwheel-Manpage beschrieben. Listing 4 zeigt einige praktische Beispiele aus meiner imwheelrc.

Listing 4

Beispiel für eine imwheelrc

# XMMS - Mausrad bedient die Playlist
"xmms"
None,           Up,     Z
None,           Down,   B
# Normales Verhalten von kvt wiederherstellen:
# Rad Hoch|Runter = Umschalt+Shift+Hoch|Runter
# Ohne diesen Eintrag wird der generische Eintrag benutzt
# und dieser scrollt  nicht im Fenster, sondern sendet
# Cursorbewegungen!
"kvt"
None,           Up,     Shift_L|Page_Up
None,           Down,   Shift_L|Page_Down
# KMail : Rad bewegt Scrollbar in der Mail
#         Shift_Links + Rad scrollt im Mailindex
"kmail"
None,           Up,     Page_Up
None,           Down,   Page_Down
Shift_L,        Up,     Left
Shift_L,        Down,   Right

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare

Infos zur Publikation

LU 05/2015: Daten visualisieren

Digitale Ausgabe: Preis € 4,95
(inkl. 19% MwSt.)

Mit der Zeitschrift LinuxUser sind Sie als Power-User, Shell-Guru oder Administrator im kleinen Unternehmen monatlich auf dem aktuelle Stand in Sachen Linux und Open Source.

Sie sind sich nicht sicher, ob die Themen Ihnen liegen? Im Probeabo erhalten Sie drei Ausgaben zum reduzierten Preis. Einzelhefte, Abonnements sowie digitale Ausgaben erwerben Sie ganz einfach in unserem Online-Shop.

NEU: DIGITALE AUSGABEN FÜR TABLET & SMARTPHONE

HINWEIS ZU PAYPAL: Die Zahlung ist auch ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!       

Tipp der Woche

Ubuntu 14.10 und VirtualBox
Ubuntu 14.10 und VirtualBox
Tim Schürmann, 08.11.2014 18:45, 4 Kommentare

Wer Ubuntu 14.10 in einer virtuellen Maschine unter VirtualBox startet, der landet unter Umständen in einem Fenster mit Grafikmüll. Zu einem korrekt ...

Aktuelle Fragen

Admin Probleme mit Q4os
Thomas Weiss, 30.03.2015 20:27, 6 Antworten
Hallo Leute, ich habe zwei Fragen zu Q4os. Die Installation auf meinem Dell Latitude D600 verl...
eeepc 1005HA externer sound Ausgang geht nicht
Dieter Drewanz, 18.03.2015 15:00, 1 Antworten
Hallo LC, nach dem Update () funktioniert unter KDE der externe Soundausgang an der Klinkenbuc...
AceCad DigiMemo A 402
Dr. Ulrich Andree, 15.03.2015 17:38, 2 Antworten
Moin zusammen, ich habe mir den elektronischen Notizblock "AceCad DigiMemo A 402" zugelegt und m...
Start-Job behindert Bootvorgang, Suse 13.2, KDE,
Wimpy *, 20.02.2015 10:32, 4 Antworten
Beim Bootvorgang ist ein Timeout von 1 Min 30 Sec. weil eine Partition sdb1 gesucht und nicht gef...
Konfiguration RAID 1 mit 2 SSDs: Performance?
Markus Mertens, 16.02.2015 10:02, 6 Antworten
Hallo! Ich möchte bei einer Workstation (2x Xeon E5-2687Wv3, 256GB RAM) 2 SATA-SSDs (512GB) al...