Russisch und Deutsch mit SuSE Linux 8.1
Meine Frau ist Russin, lebt aber schon seit vielen Jahren in Deutschland. Wenn Sie Deutsch schreibt, benutzt sei die deutsche Tastaturbelegung, für Russisch natürlich die russische.
Früher, zu Zeiten von X11R4 benutzten wir xmodmap, um die Tastatur umzuschalten. Das behinderte das normale mehrsprachige Schreiben aber gehörig, da die vollständige Umstellung der Tastatur einige Zeit beanspruchte. Irgendwann unterstützte XFree86 dann die XKB Erweiterung. Damit sollten mehrere Tastaturbelegungen gleichzeitig nutzbar sein. Doch an Dokumentation zu dem Thema mangelte es erheblich. An dieser Situation hat sich bis heute wenig geändert.
Irgendwann wollte ich das Problem dann aber doch lösen und eine benutzbare Tastaturbelegung für deutsch/russisch und eine für amerikanisch/russisch mit der Möglichkeit, deutsche Umlaute einzugeben, schaffen. Die letztere brauche ich selbst, da man mit einer amerikanischen Tastatur einfach besser Programmieren kann.
Ein bischen Forschung in /etc/X11/xkb zeigte folgendes. Es gibt eine Tastaturbelegung für amerikanisch/russisch. Auch gibt es eine amerikanische Tastatur, bei der man mit Alt-Gr Umlaute eingeben kann. Leider sind beide jedoch nicht kombinierbar und die deutsche Tastaturbelegung verträgt sich mit der amerikanisch/russischen auch nicht.
Also war wiedereinmal Handarbeit gefragt. Dabei half mir sehr die Beschreibung von Ivan Pascal zu XKB. Wenn Sie mehr über die Innereien von XKB erfahren wollen, dann ist das der richtige Ausgangspunkt.
So, da Sie nun zum Spezialisten für XKB geworden sind, kann ich gleich mit meinem bescheidenen Beitrag weitermachen. Ich brauchte also eine Tastaturbelegung mit 3 Gruppen: Gruppe 1 - die amerikanische oder deutsche Belegung, Gruppe 2 - die Zeichen der deutschen Belegung, die mit Alt-Gr erreichbar sind, bzw. Umlaute und sonstige Sonderzeichen bei der amerikanischen Variante, Gruppe 3 - Russisch.
Mit XKB kann man Tastatureinstellungen in mehreren Dateien speichern und diese dann nach Belieben kombinieren. Es ist also theoretisch möglich die amerikanische Belegung in Gruppe 1 in einer Datei zu speichern und die russische in Gruppe 2 oder 3 in einer anderen Datei. Diese werden dann in der X11 Konfigurationsdatei miteinander kombiniert:
Section "InputDevice"
...
Option "XkbSymbols" "en_US(pc105)+ru_group3(typewriter)+group(shift_toggle)"
Option "XkbKeycodes" "xfree86"
Option "XkbTypes" "default"
Option "XkbCompat" "default"
Option "XkbGeometry" "pc(pc105)"
...
EndSection
Die interessante Zeile enthält das Wort XkbSymbols. Hier werden die Dateien en_US, ru_group3 und group miteinander verheiratet. Zu jeder Datei kann eine bestimmte Sektion in der Datei mit angegeben werden, z.B. (typewriter).
Die bestehende russische Belegung enthielt jedoch amerikanisch/russisch fest verdrahtet in den Gruppen 1 und 2. Also schrieb ich 2 Tastaturbelegungen, die nur russisch enthalten und zwar zum einen in Gruppe 2 und zum anderen in Gruppe 3. So erreicht man mit en_US(pc105)+ru_group3(typewriter) eine Konfiguration mit amerikanisch in Gruppe 1, den internationalen Zeichen in Gruppe 2 und russisch in Gruppe 3. Nur umschalten zu Gruppe 3 funktioniert noch nicht. (Umschalten in Gruppe 2 funktioniert wie gehabt mit Alt-Gr.) Zum Umschalten in Gruppe 3 gibt es zum Glück schon ein Plugin mit mehreren Möglichkeiten. Das obige group(shift_toggle) schaltet in die nächste Gruppe mit der Betätigung beider Shift-Tasten gleichzeitig.
So, um nun alles zusammenzufassen:
- Amerikanisch/Russisch mit internationalen Zeichen erreicht man mit en_US(pc105)+ru_group3(typewriter)+group(shift_toggle)
- Deutsch/Russisch mit en_US(pc105)+de(nodeadkeys)+ru_group3(typewriter)+group(shift_toggle)
Diese Einstellungen können nun direkt im /etc/X11/XF86Config gespeichert werden (siehe oben) oder sie werden in einer Keymap-Datei zusammengefaßt. Angenommen das Keymap heißt opi, so reicht danach ein
Option "XkbKeymap" "opi(us_ru)"
statt
Option "XkbSymbols" "en_US(pc105)+ru_group3(typewriter)+group(shift_toggle)"
Option "XkbKeycodes" "xfree86"
Option "XkbTypes" "default"
Option "XkbCompat" "default"
Option "XkbGeometry" "pc(pc105)"
in /etc/X11/XF86Config. Für deutsch/russisch lautet die entsprechende Anweisung
Option "XkbKeymap" "opi(de_ru)"
So können dann plötzlich viele Programme, u.a KMail, Netscape, Emacs und Staroffice/Openoffice, einfach Russisch schreiben:
Russisch in KMail:
Russisch in Emacs:
Und hier nochmal alle beteiligten Dateien:
- /etc/X11/xkb/symbols/ru_group2: Russische Tastaturbelegung in Gruppe 2
- /etc/X11/xkb/symbols/ru_group3: Russische Tastaturbelegung in Gruppe 3
- /etc/X11/xkb/symbols.dir: Index der Tastaturbelegungen, der ru_group2 und ru_group3 einschließt
- /etc/X11/xkb/keymap/opi: Meine Einstellungen als Keymap Datei zusammengefaßt.
- /etc/X11/xkb/keymap.dir: Der Keymap Index um opi erweitert


