Logitech Cordless Wheel Mouse

Aus LinuxUser 01/2000

Logitech Cordless Wheel Mouse

Schnurlos scrollen

Wer heute einen neuen Rechner kauft oder einfach nur die altersschwache Maus ersetzen will, liebäugelt oft mit einer Wheel-Mouse. Wäre da nur nicht die bange Frage: “Wird die denn auch von Linux unterstützt?”

Die Gründe für eine Logitech Cordless Wheel Mouse[1] am PS/2-Port sind leicht ersichtlich: schnurlose Freiheit und scrollende Faulheit. Doch bevor man der neuen Freiheit fröhnen kann, gilt es zunächst, entsprechend der teilweise 12(!)-sprachigen Gebrauchsanweisung die Batterien in der Maus zu platzieren. Der Empfänger wird mit einem freien PS/2-Maus-Steckplatz am Computer verbunden und erhält seine Energieversorgung vom Rechnernetzteil. Dem Rest der Gebrauchsanweisung kann man allerdings nur bedingt weitere Informationen entnehmen, weil der Hersteller keine Linux-Treiber beilegt.

Wer nach dem Einkauf feststellt, dass er ein Original-Logitech-Produkt, zu erkennen am farbigen Logo auf der Maus, nach Hause getragen hat, kann sich glücklich schätzen. Die OEM-Version mit dem schwarz-weißen Logo versteht nämlich scheinbar das IMPS/2-Protokoll nicht, das zur Unterstützung des Rades benötigt wird. Eine solche Maus lässt sich zwar mit dem PS/2-Protokoll zum Laufen bringen, vom Rad hat man dann allerdings nichts. Deshalb: Augen auf beim Einkauf!

Glückliche Besitzer des Originals werden jetzt dafür sorgen, dass das Empfangsgerät unddie Maus miteinander kommunizieren: Dies wird durch die Connect-Tasten unter der Maus und auf dem Empfangsgerät erreicht. Drückt man beide Tasten gleichzeitig, dann einigen sich die Geräte auf eine Frequenz. Sollte der Mauszeiger urplötzlich nicht mehr zu bewegen sein, kann dies an einem Verständigungsproblem der Geräte liegen. Dann hilft oft ein Druck auf die Connect-Tasten. Leider verfügen die neueren Versionen des Empfängers nicht mehr über eine LED, die einen geglückten Verbindungsaufbau anzeigt, weshalb man der Technik in diesem Fall blind vertrauen muss.

Aller Anfang ist die Konfiguration

Auch ohne herstellerseitig beiliegende Linux-Treiber muss dem Linux-System Unterstützung für PS/2-Mäuse hinzugefügt werden. Falls der aktuelle Kernel diese Eigenschaft nicht besitzt, führt kein Weg an einer Neukompilierung des Kernels (hier: ein 2.2.x-Kernel; ein neuerer 2.0.x-Kernel funktioniert auch) vorbei. Das proc-Filesystem zeigt, ob der Kernel PS/2-Unterstützung bereitstellt:

roland@Matrix:/proc > cat misc
144 nvram
135 rtc
134 apm
  1 psaux

Existiert der Eintrag psaux nicht, dann hilft nur, sich als root einzuloggen, zu den Kernelsourcen im Verzeichnis /usr/src/linux zu spazieren und das Betriebssystem neu zu konfigurieren. Der Kasten “Ein neues Betriebssystem bitte!” zeigt die dabei benötigten Schritte.

Ein neues Betriebssystem bitte!

(Fast) jede Kernelkompilation beginnt mit der Konfiguration:

Matrix:/usr/src/linux # make menuconfig

Durch das Anwählen der Option Mouse Support (not serial mice) unter Character Devices gelangt man ins Menü Mice (Listing 1). Hier sollte nicht Logitech busmouse support angewählt werden, da dies nur für alte Logitech-Mäuse nötig ist. Neuere Ausgaben, insbesondere die Cordless Wheel Mouse, benutzen den PS/2-Port.

Benutzer der 2.0.x-Kernel wählen die gleichen Optionen aus, der einzige Unterschied: Die Maus-Optionen befinden sich nicht in einem eigenen Untermenü. Ist der Kernel den eigenen Bedürfnissen angepasst, speichert man die Optionen beim Beenden.

Matrix:/usr/src/linux # make dep clean bzImage modules modules_install

kompiliert den Kernel (während dieser Zeit kann man leicht einen ganzen Artikel lesen). Die Dateien /usr/src/linux/System.map und /usr/src/linux/arch/i386/boot/bzImage kopiert man nun ins /boot-Verzeichnis und trägt den Kernel in /etc/lilo.conf ein:

image = /boot/bzImage
root = /dev/<Root-Partition>
label = neu

Nach einem Aufruf von lilo kann beim nächsten Booten der Kernel namens neu im LILO-Menü ausgewählt werden.

Listing 1

Kernelkonfiguration für die PS/2-Maus

Character devices  --->
[*] Mouse Support (not serial mice)
          Mice  --->
          < > Logitech busmouse support
          [*] PS/2 mouse (aka "auxiliary device") support

Rebooten? Nur bei neuer Hardware!

Beim Hochfahren des (neuen) Systems sollte folgende Meldung erscheinen:

Detected PS/2 Mouse Port.

Falls nicht, prüfen Sie besser, ob vielleicht die PS/2-Unterstützung des Motherboards im BIOS abgestellt ist, und probieren es dann noch einmal. Bevor die Maus nun das erste Mal genutzt werden kann, überprüft man noch schnell das PS/2-Device/dev/psaux :

Matrix:/dev # ls -l psaux
crw-rw-rw-   1 root     root      10,   1 Sep 29 20:08 psaux
Matrix:/dev # ls -l mouse
lrwxrwxrwx   1 root     root           10 Sep 28 20:44 mouse -> /dev/psaux

Falls diese beiden Dateien nicht existieren, legt man sie mit folgenden Befehlen an:

Matrix:/dev # mknod psaux c 10 1
Matrix:/dev # ln -s psaux mouse

Wer die Maus auf der Textkonsole nutzen will, sollte sich nun der GPM-(“General Purpose Mouse”)-Konfiguration widmen.

Die Allzweckmaus

Damit Copy&Paste auf der Konsole funktioniert, braucht das dafür zuständige gpm-Tool nur zwei Informationen: das Device psaux und das Protokoll imps/2. Wechseln Sie zunächst ins Verzeichnis /usr/sbin, wo es beheimatet ist, und starten Sie es mit

Matrix:/usr/sbin # ./gpm -t imps/2 -m /dev/psaux

Bewegt man die Maus, sollte der Maus-Cursor zu sehen sein und den Bewegungen folgen. Auch das Kopieren von Zeichen funktioniert dann wie von der grafischen Oberfläche gewohnt: Dazu selektiert man Text und fügt ihn mit einem Druck auf den dritten Maus-Button wieder ein. Der dritte Maus-Button ist in diesem Fall das Rädchen: drücken, nicht drehen!

SuSE-Linux-User wählen im YaST unter Hardware in System integrieren / Maus konfigurieren die Option Intellimouse — Maus mit Rad am PS/2-Port oder setzen in der Datei /etc/rc.config die Option GPM_PARAM=”-t imps/2 -m /dev/psaux”. Dadurch wird GPM beim nächsten Booten automatisch konfiguriert.

Debianer ändern zwei Einträge in der Datei /etc/gpm.conf mit ihrem Lieblingseditor in device=/dev/psaux und type=imps/2. Startet man das Skript /etc/init.d/gpm neu, werden diese Änderungen wirksam. Beim nächsten Starten wird gpm nur dann automatisch konfiguriert, wenn der Link /etc/rcX.d/S20gpm auf das Skript /etc/init.d/gpm zeigt. X steht für das Runlevel (siehe “Dr. Linux” in dieser Ausgabe), in dem man die Maus benutzen will.

Rad fahren

Auch wenn die Maus auf der Konsole funktioniert – der Nutzen des Rades kommt erst unter X zum Tragen. Die folgenden Ausführungen beziehen sich auf XFree86 in der Version 3.3.4, Informationen zu kommerziellen X-Servern und Patches gibt es bei [2].

Seit der Version 3.3.2 unterstützt XFree eigenständig verschiedene Wheel-Mäuse, d.h., das Rad wird als solches erkannt und ein Dateninput ermöglicht. Falls Sie eine ältere Version installiert haben, sollten Sie daher auf jeden Fall updaten.

XFree nimmt Rücksicht auf GUI-Toolkits, die keine Wheel-Mouse-Unterstützung bereitstellen, wie zum Beispiel Qt 1.x, das in KDE 1.x verwendet wird. Statt den Anwendungen das Drehen des Rades als solches mitzuteilen, werden die Rad-Bewegungen vielmehr auf einen scheinbaren vierten und fünften Maus-Button gelegt. Dass die Maus keine physische vierte und fünfte Maus-Taste besitzt, ist nicht wichtig; die Applikationen bekommen lediglich das Ereignis “x-ter Maus-Button gedrückt” übermittelt. Für dieses “Mapping” muss die XFree-Konfigurationsdatei /etc/XF86Config gemäß Listing 2 verändert werden.

Listing 2

Damit das Rad funktioniert – Auszug aus der XF86Config

Section "Pointer"
  Protocol              "IMPS/2"
  Device                "/dev/psaux"
  ZAxisMapping          4 5
  Buttons               5
  SampleRate            60
  BaudRate              1200
EndSection

Die Protokoll- und Device-Einträge sind mit denen von gpm identisch. Interessant ist der Punkt ZAxisMapping: Eine Maus kennt nur zwei Dimensionen, die X-Achse (Rechts/Links-Bewegungen) und die Y-Achse (vor/zurück). Das Rad stellt man sich als weitere Achse dar, die Z-Achse. Durch diesen Eintrag kann man nun bestimmen, welche Aktionen eine Bewegung auf der Z-Achse, also ein Drehen des Rädchens, zur Folge haben soll. Dabei gilt folgende Syntax:

ZAxisMapping <Button bei negativer Drehrichtung> <Button bei positiver Drehrichtung>

Tabelle 1 zeigt die zugehörige Rad-Bewegung. Der Eintrag Buttons 5 ist aus eigener Erfahrung nicht zwingend notwendig, aber laut XF86Config-Manpage soll man die Anzahl der realen Mausbuttons addiert mit der Anzahl der scheinbaren Buttons vom ZAxisMapping angeben.

Tabelle 1: Rad-Bewegungen

nach Vorn drehen negative Drehrichtung Button 4
nach Hinten drehen positive Drehrichtung Button 5

Startet man X nun (neu), so sollten Maus und die drei Buttons wie gewohnt arbeiten.

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 imwheelsetuid 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

Gut versteckt

Auch wenn imwheel nicht ganz freiwillig damit herausrückt – es gibt sogar ein grafisches Konfigurationstool für den kleinen Helfer. Bewegt man das Rad auf dem Desktop mehrmals schnell hoch und runter, dann erscheint der IM Wheel Configuration Helper (siehe Abbildung 1).

Abbildung 1: Der IMWheel-Konfigurationshelfer

Abbildung 1: Der IMWheel-Konfigurationshelfer

Dieses Hilfsmittel nimmt dem User zwar nicht das Editieren der imwheelrc-Datei ab, aber es findet den Klassennamen eines beliebigen Fensters heraus. Dazu klickt man auf die kleine Abbildung des Desktops und dann auf ein beliebiges Fenster. Abbildung 2 zeigt KMail ausgewählt.

Abbildung 2: KMail im Visier

Abbildung 2: KMail im Visier

Auch wenn das auf den ersten Blick nicht viel erscheint – als Fensteridentifizierung eignen sich die Einträge Class oder Resource am besten, da sie eindeutiger sind als der Fenstertitel. Diese herauszufinden, ist allerdings nicht ganz ohne, und genau dabei bewährt sich der Konfigurationshelfer.

Hat man /etc/imwheelrc seinen Wünschen angepasst, dann muss imwheel die geänderten Daten einlesen. Dies erreicht man komfortabel durch den Button Reload im IMWheel-Konfigurationshelper oder manuell durch das “Abschießen” des aktuellen imwheel-Prozesses und das Neustarten von imwheel.

Bei der Auswahl der Rad-Aktion zeigt sich im Falle von KMail allerdings ein Schwachpunkt von IMWheel: Man kann das Rad nur zum Scrollen in der Mail oder in der Mailliste benutzen, aber dieses Verhalten nicht von der Position des Mauszeigers im Fenster abhängig machen. Und noch einen Nachteil hat IMWheel: Aktionen, die sich nicht über Tastaturkürzel aus der Applikation heraus erreichen lassen, sind für das Scroll-Rad tabu. Zum Glück definieren sehr viele Programme solche Shortcuts bzw. lassen ihre Einrichtung zu.

Wenn Sie beim Ausreizen der Möglichkeiten Ihrer Wheel-Maus die eine oder andere Scrollmöglichkeit herausfinden, lassen Sie uns doch die entsprechenden imwheelrc-Einträge zukommen. Weitere Anregungen finden Sie in der Standard-imwheelrc.

Glossar

IMPS/2-Protokoll
Ein Protokoll dient als standardisierte Sprache zwischen Geräten. Das PS/2-Protokoll sollte mit jeder PS/2-kompatiblen Maus zusammenarbeiten, aber Räder und andere zusätzliche Tasten werden von diesem Protokoll nicht berücksichtig. Deshalb existieren Erweiterungen, die dieses Manko beheben wollen. Hierzu gehört IMPS/2.
LED
Eine Licht Emmitierende Diode ist ein elektrisches Gerät, das wie ein kleines Lämpchen leuchtet. Eine LED findet sich zum Beispiel am Monitor und an der Vorderseite jedes Computers.
proc-Filesystem
Die Dateien im Verzeichnis /proc belegen keinen Speicherplatz auf der Festplatte. Ihre Inhalte werden erstellt, wenn man sie anschaut, und geben Auskunft über das System, zum Beispiel über die gefundene Hardware.
Device
Sämtliche Hardware in einem Linuxsystem wird über sogenannte Gerätedateien oder Device Files angesprochen. Gerätedateien legt man mit dem speziell dafür gedachten Kommando mknod an.
Patches
Ein Patch ist eine Veränderung eines Programms, die ihm neue Eigenschaften hinzufügen oder es einfach stabiler machen soll. Dabei kann der Patch sich auf den Quellcode des Programms oder das ausführbare Programm selbst beziehen.
GUI-Toolkit
Ein Toolkit (“Werkzeugkasten”) zum Erstellen grafischer User-Interfaces (“Benutzerschnittstellen”) stellt einem Programmierer vorgefertigte Funktionen zur Verfügung, welche das Aussehen und Verhalten von Programmen vereinheitlichen sollen. Bekannte Vertreter sind das Gimp-Toolkit (GTK) und Qt (mit dem KDE arbeitet).
~
Die Tilde ist eine Abkürzung für das Home-Verzeichnis.
Makefile
Ein Makefile enthält Informationen, welche zum Kompilieren eines Programms benötigt werden, zum Beispiel Compiler-Anweisungen und das Installationsverzeichnis. Beim Aufrauf von make wird diese Datei automatisch durchsucht und ausgewertet.
setuid root
Jedes Programm bekommt beim Aufruf normalerweise nur die Berechtigungen der Person mit, die das Programm ausführt. Bei einem normalen Benutzer sind das nur wenige Rechte am System. Sollten einmal spezielle Rechte von Nöten sein (zum Beispiel für den Zugriff auf Hardware), setzt man für das Programm das Setuid (Set User ID)-Bit mit dem Kommando chmod. Dann wird es mit den Rechten des Users ausgeführt, dem die ausführbare Datei gehört: bei setuid root eben mit allen Rechten des Superusers.
Fensteridentifikation
Jedes Fenster bekommt als Objekt einen Namen, den Ressourcennamen. Dieser hat eine ähnliche Bedeutung wie der Name der Applikation. Eine Klasse zeichnet sich durch gemeinsame Eigenschaften aus und entspricht einer “Sorte” von Fenstern. Die Klasse eines Fensters wird durch die Programmierung bestimmt.
.*
Der Joker .* steht für eine unbegrenzte Anzahl beliebiger Zeichen. Indem man ihn in der Fensteridentifikation benutzt, können mehrere Fensterklassen gleichzeitig konfiguriert werden.
X-KeySyms
Eine abstrakte Bezeichnung der Tastaturtasten. Für den Computer hat jede Taste einen Zahlencode, aber die kann man nun nicht alle auswendig lernen. Deshalb existieren Tabellen, welche die Namen der Tasten in dem Computer verständliche Zahlencodes umwandeln.
UND-Verknüpfung
Eine UND-Verknüpfung verlangt, dass alle Eingabedaten “wahr” sein müssen, damit das Ergebnis “wahr” ist. Hier bedeutet es, dass alle Tasten in der Liste gleichzeitig gedrückt (Eingabe) oder übermittelt (Ausgabe) werden müssen.

Der Autor

Roland Pabel ist Mathematikstudent an der Universität Bonn. Er liebt es, neue Soft- und Hardware an Linux auszuprobieren und verbringt deshalb viel Zeit mit Installieren und Kompilieren.

LinuxUser 01/2000 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben