Dieses Handbuch wird mit freundlicher Genehmigung von Sebastian Hetze auf den Servern der Linux Information Systems AG gehosted.

next up previous contents index
Next: Locales und Native Language Up: Die Linux-Console Previous: Der Bildschirm

Subsections


Die Tastatur

  

Wenn Sie auf Ihrer Tastatur (Keyboard) die Taste mit der Aufschrift `Z' drücken, erwarten Sie normalerweise, daß auf dem Bildschirm das Zeichen `Z' erscheint. Das gleiche gilt natürlich auch für die Benutzerin in den USA, in Finnland oder in Moskau. In vielen Ländern werden üblicherweise Tastaturen benutzt, die auf die sprachlichen Eigenarten der jeweiligen Schriftsprache ausgerichtet sind. Bekanntermaßen enthält das deutsche Tastaturlayout die Umlaute ä,Ä,ö,Ö,ü,Ü und ß. Außerdem sind die Tasten im Vergleich zu dem in den USA üblichen Keyboard anders angeordnet: Z und Y sind vertauscht, : ; / etc. befinden sich an anderen Stellen.

Die Tastaturtabelle

    Damit Linux mit allen möglichen Tastaturen zusammenarbeiten kann, wird auch im Tastaturtreiber eine Tabelle zur Umsetzung der rohen Tastatureingabe in den länderspezifischen Zeichencode eingesetzt.

Für die deutsche Tastatur mit Umlauten ist die Tabelle de-latin1.map vorgesehen, die im Verzeichnis /usr/lib/kbd/keytables zu finden ist. Die Tabelle wird mit dem loadkeys-Kommando in den Kernel geladen:

$ loadkeys de-latin1
Loading /usr/lib/kbd/keytables/de-latin1.map
$ _

Die Tastaturtabelle besteht aus drei Abschnitten.

Die Belegung der keycodes

 

Im ersten Abschnitt werden bestimmten ``keycodes'' symbolische Namen für die Zeichen zugeordnet, die beim Drücken der den keycode erzeugenden Taste eingegeben werden sollen.

Der keycode wird vom Kernel aus dem von der Tastatur kommenden scancode ermittelt. Beide Codes können Sie mit dem showkey-Kommando für jede Taste ermitteln.

Mit symbolischen Namen können sowohl die üblichen Schriftzeichen als auch die Funktions- und Sondertasten benannt werden. Eine vollständige Liste der verwendbaren symbolischen Namen erhalten Sie mit dem Kommando dumpkey -long-info.

Es ist üblich, die Tasten mehrfach zu belegen. So sind alle Buchstabentasten gleichzeitig mit dem großen und dem kleinen Schriftzeichen belegt; die Umschaltung erfolgt mit der SHIFT- Taste.

Zusätzlich zu SHIFT werden noch ALTGR, CONTROL und die linke ALT-Taste zum Umschalten auf zusätzliche Tastaturbelegungen verwendet. Durch Kombinationen dieser vier Tasten lassen sich alle Tasten mit 16 symbolischen Namen belegen.

Die Reihenfolge der Zuordnung ergibt sich, wenn Sie den Umschalttasten in der Reihenfolge SHIFT, ALTGR, CONTROL und ALT die Werte 1,2,4,8 zuordnen. Das erste Symbol, das einem keycode zugeordnet wird, erscheint, wenn keine der Umschalttasten gedrückt ist, das zweite erscheint zusammen mit SHIFT, das dritte mit ALTGR, das vierte mit SHIFT ALTGR usw. ...

Es müssen nicht alle 16 erlaubten Belegungen für eine Taste aufgeführt werden. Ohne Belegung geben die Tastenkombinationen normalerweise keine Zeichen aus. Zur vereinfachten Eingabe der ``normalen'' Schriftzeichen gibt es jedoch einen speziellen Mechanismus von loadkeys, mit dem eine Standardreihe von Belegungen erzeugt wird: wenn ein keycode nur mit einem einzigen ASCII-Buchstaben belegt wird, werden die korrespondierenden Zeichen für Tastenkombinationen mit SHIFT, CONTROL, ALT und ALT CONTROL automatisch erzeugt.

Es ist möglich, bestimmte, einzelne Tastenkombinationen zu belegen, indem der symbolische Name durch die Bezeichnungen der Umschalttasten eingeleitet wird, mit denen das dem symbolischen Namen entsprechende Zeichen erzeugt werden soll.

Die Definition der Funktionstasten

 

Einige der symbolischen Namen für Tastaturbelegungen bezeichnen keine Schriftzeichen, sondern Funktionen, die normalerweise den Funktionstasten zugeordnet werden. Diese Tasten erzeugen normalerweise Sequenzen von mehreren Zeichen, die von Anwenderprogrammen abgefangen und besonders ausgewertet werden können.

Im zweiten Abschnitt der Keymap werden die Zeichensequenzen für die Funktionstasten als ``string'' den symbolischen Namen zugeordnet.

Die zusammengesetzten Zeichen (Diacriticals)

 

Durch die symbolischen Namen dead_grave, dead_acute, dead_circumflex,dead_tilde unddead_diaeresis kann beliebigen Tastenkombinationen die Funktion ``toter'' Vorzeichen gegeben werden. Wenn so ein Zeichen eingegeben wird, erscheint es nicht sofort in der Ausgabe, sondern wird zusammen mit dem darauffolgenden Tastendruck interpretiert. Wenn das so entstandene Zeichenpaar mit einem der -im dritten Abschnitt der Keymap hinter dem Schlüsselwort compose aufgeführten -Paare übereinstimmt, wird es entsprechend dieser compose-Anweisung ersetzt. Stimmt das Zeichenpaar mit keinem der compose-Paare überein, wird es unverändert weiterverarbeitet.  

Metazeichen

  

Die oben erwähnte automatische Ergänzung der Tastenbelegung für normale Buchstaben führt zur Erzeugung von ``Metazeichen'', wenn diese Tasten zusammen mit der linken ALT-Taste gedrückt werden. Derselbe Effekt kann für alle Tasten durch direkte Zuordnung der symbolischen Namen `Meta_*' erzielt werden.

Die Metazeichen werden vom Kernel auf eine von zwei Arten weiterbearbeitet. Erstens kann das Zeichen automatisch als ESC- Sequenz ausgegeben werden, bei der der dem Metazeichen zugrundeliegende Buchstabe durch das ESCAPE-Zeichen eingeleitet wird.

Zweitens kann das Zeichen aus dem ``unteren'' Bereich der Codetabelle (0-127) in den oberen Bereich transponiert werden, indem das höchstwertige Bit gesetzt wird. Auf diese Weise können die Sonderzeichen aus diesem Teil der Tabelle eingegeben werden.

Zwischen den beiden Arten der Nachbearbeitung der Metazeichen kann durch das Kommando setmetamode(1) mit den Argumenten esc oder meta umgeschaltet werden.

Die automatische Erzeugung von ESC-Sequenzen ist vorteilhaft für alle Programme, die mit solchen Steuerkommandos arbeiten. Beispielsweise erlauben die bash oder der emacs so die Benutzung der linken ALT-Taste als Metataste.


  
Abbildung B.3: Die deutsche MF2-Tastatur

    


next up previous contents index
Next: Locales und Native Language Up: Die Linux-Console Previous: Der Bildschirm

Das Linux Anwenderhandbuch
(C) 1997 LunetIX