Ubuntu-Konsolen-Keymaps mit ckbcomp und loadkeys anpassen

Überblick: XKB-Tastaturbelegungen für die Linux-Konsole übersetzen

Wer auf virtuellen Textkonsolen unter Linux arbeitet, stellt schnell fest, dass X-Window- bzw. Wayland-Belegungen dort nicht unmittelbar greifen. Das Dienstprogramm ckbcomp schließt diese Lücke, indem es moderne XKB-Regeln in native Kernel-Keymaps für loadkeys übersetzt. Statt sich durch unübersichtliche Manpages zu kämpfen, vermittelt dieser Leitfaden anhand praxiserprobter Schritte alles Wissenswerte – von grundlegenden länderspezifischen Layouts über Deadkey-Anpassungen bis hin zum ergonomischen Tausch von CapsLock und Control.

1. Benötigte Pakete einrichten und Standard-US-Layout generieren

Um Tastaturtabellen sauber erzeugen und in das TTY laden zu können, setzt das System drei fundamentale Komponenten voraus: console-setup, kbd und xkb-data. Die Installation erfolgt über den Standard-Paketmanager:

sudo apt-get update -qq && sudo apt-get install -y console-setup kbd xkb-data

Das Werkzeug ckbcomp liest die regulären XKB-Beschreibungen ein und transformiert sie in das klassische Tabellenformat von loadkeys. Ein Aufruf mit dem Standardlayout us, weitergeleitet an head -n 30, offenbart den internen Aufbau der Keycode-Zuweisungen:

⚙️ Zentrale Parameter im Überblick:

-model : Bestimmt die Hardware-Geometrie der Tastatur (z. B. pc105 oder pc104).
-variant : Wählt eine spezifische Tastenbelegungsvariante (etwa dvorak oder colemak).
-option : Aktiviert erweiterte Verhaltensmodifikationen, wie das Neubelegen oder Deaktivieren der Feststelltaste (ctrl:nocaps).
-charmap : Definiert den Zeichensatz der generierten Map (beispielsweise UTF-8 oder ISO-8859-1).
-compact : Reduziert die resultierende Dateigröße durch das Zusammenfassen redundanter Scancodes.
-freebsd : Erzeugt anstelle des Linux-Formats eine Keymap für FreeBSD-Systemkonsolen.

ckbcomp us | head -n 30

2. Tastaturmodell (-model) und regionale Varianten (-variant) konfigurieren

Soll eine landesspezifische Belegung auf einer europäischen Standardtastatur zum Einsatz kommen, verknüpft man das Modell pc105 mit der entsprechenden Länderkennung. Im folgenden Beispiel wird die koreanische Tastenbelegung (-layout kr) verarbeitet, wobei die Terminalausgabe die Zuordnung numerischer Tastencodes zu spezifischen Unicode-Symbolen illustriert:

ckbcomp -model pc105 -layout kr | head -n 25

Programmierer bevorzugen im deutschen Sprachraum häufig Layouts ohne Tottasten, um Sonderzeichen wie Tilde oder Backtick ohne Verzögerung einzugeben. Über das Flag -variant nodeadkeys lässt sich diese Variante für das deutsche Schema (-layout de) direkt kompilieren:

ckbcomp -model pc105 -layout de -variant nodeadkeys | head -n 25

3. Modifikationen vornehmen: CapsLock durch Control ersetzen

Für effizientes Arbeiten in Editoren wie Vim oder Emacs lässt sich die Feststelltaste dauerhaft in eine zusätzliche Steuerungstaste umwandeln. Mit -option ctrl:nocaps wird das Symbol Caps_Lock vollständig aus der Zuweisung entfernt, was eine Überprüfung mittels grep unmittelbar bestätigt:

ckbcomp -layout us -option ctrl:nocaps | grep -i ‘caps_lock’ -B 2 -A 5

Alternativ bietet sich der wechselseitige Tausch beider Funktionstasten via -option ctrl:swapcaps an. Eine gezielte Filterung der Ausgabe verdeutlicht, dass die Belegungen die Plätze gewechselt haben – so wird etwa auf keycode 29 nun das Signal für Caps_Lock ausgelöst:

ckbcomp -layout us -option ctrl:swapcaps | grep -E ‘Caps_Lock|Control’ | head -n 20

4. Keymap-Dateien sichern und per loadkeys aktivieren

Damit selbst erstellte Definitionen strukturiert abgelegt bleiben, richtet man im Benutzerverzeichnis einen dedizierten Speicherort ein:

mkdir -p ~/keymaps

Die kompilierte Konfiguration wird mittels Ausgabeumleitung direkt in die Zieldatei ~/keymaps/custom_us.map geschrieben:

ckbcomp -layout us -option ctrl:nocaps > ~/keymaps/custom_us.map

Um Plattenplatz zu sparen und den Gepflogenheiten moderner Linux-Distributionen zu entsprechen, empfiehlt sich die Komprimierung mit gzip. Das Flag -k stellt dabei sicher, dass die Quelldatei erhalten bleibt:

gzip -fk ~/keymaps/custom_us.map

Ein kurzer Blick auf die Dateiliste zeigt den enormen Kompressionseffekt: Die ursprüngliche Textdatei von rund 120 KB schrumpft auf handliche 4 KB zusammen:

ls -lh ~/keymaps/custom_us.map*

Mit Administratorrechten lässt sich das modifizierte Schema schließlich auf die aktive TTY-Sitzung übertragen. Der Befehl loadkeys liest die Datei unverzüglich ein, sodass das angepasste Tastaturverhalten ohne Neustart einsatzbereit ist:

sudo loadkeys ~/keymaps/custom_us.map

Mit ckbcomp und loadkeys steht Administratoren ein mächtiges Gespann zur Verfügung, um selbst komplexe XKB-Layouts reibungslos auf Textkonsolen zu portieren. Dank der gezeigten Schritte lassen sich ergonomische Anpassungen und maßgeschneiderte Tastaturbelegungen mühelos auch in reinen CLI-Umgebungen realisieren.