Joachim Wuttke:
Deutsch-Amerikanische Freundschaft

Änderung der Tastaturbelegung unter X11R7 — zum Beispiel für deutsche Umlaute auf einer US-Tastatur
 
Keyboard modification under X11; e.g. for adding German umlauts to a US keyboard

Eine erste Fassung dieser Anleitung ist im Linux-Magazin 10/03 erschienen. Seitdem haben sich die Konfigurationsfiles von X11R6 / XFree86 / X.Org allerdings geändert. Hier eine aktualisierte Anleitung.

Motivation: Die beim Programmieren häufig benutzten Symbole [ ] { } \ sind auf einer deutschen Tastatur nur über unergonomische AltGr-Klammergriffe zu erreichen. Statt die deutsche Tastatur umzukonfigurieren, ist für mich der einfachere Weg, eine US-Tastatur zu verwenden und diese so zu modifizieren, dass auch die deutschen Umlaute bequem erreicht werden können.

Ziel: Die Umlaute Ä, ä, Ö, ... sollen über ALT-A, ALT-a, ALT-O, ... zugänglich gemacht werden. Das Zeichen ß habe ich auf ALT-s gelegt, das Euro-Symbol auf ALT-E, das Paragraph-Zeichen auf ALT-5. Die übrigen Kombinationen ALT-<Ziffer> nutze ich für Akzente und französiche Sonderzeichen. Kann man aber leicht an den eigenen Bedarf anpassen.

Warnung: Ich weiß nicht, ob sich inzwischen alle Distributionen auf einheitliche Installationspfade geeinigt haben. Die folgende Anleitung ist mindestens für die Debian-Releases etch und lenny und mindestens bis zur Paket-Version xserver-xorg 1:7.2-5 gültig.

Anleitung:

(1) Datei /usr/share/X11/xkb/symbols/us_de anlegen:

partial default alphanumeric_keys
xkb_symbols "basic" {
    include "us"
    include "us_de_diff"
    name[Group1]="en_US";
    key <RALT>  { type[Group1]="TWO_LEVEL",
                  [ ISO_Level3_Shift, Multi_key ]   };
    modifier_map Mod5   { <RALT> };
};
xkb_symbols "nodeadkeys" {
    include "pc/en_US(basic)"
    include "pc/latin(nodeadkeys)"
    include "us_de_diff"
};

(2) Datei /usr/share/X11/xkb/symbols/us_de_diff anlegen und nach eigenen Wünschen modifizieren:

default partial 
xkb_symbols "basic" {
    key <AE01> {	[  1,	exclam 		, dead_grave ]	};
    key <AE02> {	[  2,	at		, dead_circumflex ]	};
    key <AE03> {	[  3,	numbersign	, dead_acute ]	};
    key <AE04> {	[  4,	dollar		, dead_diaeresis ]	};
    key <AE05> {	[  5,	percent		, section ]	};
    key <AE06> {	[  6,	asciicircum	, ugrave ]	};
    key <AE07> {	[  7,	ampersand	, egrave ]	};
    key <AE08> {	[  8,	asterisk	, eacute ]	};
    key <AE09> {	[  9,	parenleft	, ccedilla ]	};
    key <AE10> {	[  0,	parenright	, agrave ]	};
    key <AD03> {	[  e,	E		, EuroSign ]	};
    key <AD07> {	[  u,	U		, udiaeresis, Udiaeresis ] };
    key <AD09> {	[  o,	O		, odiaeresis, Odiaeresis ] };
    key <AC01> {	[  a,	A		, adiaeresis, Adiaeresis ] };
    key <AC02> {	[  s,	S		, ssharp ]	};
};

(3) Mit Kommando setxkbmap -layout us_de interaktiv testen.

(4) Die Konfigurationsdatei /etc/X11/xorg.conf wie folgt anpassen:

Section "InputDevice"
        [...]
        Option      "XkbLayout" "us_de"
EndSection

Viel Erfolg!