kaputte Taste auf der Tastatur unter Linux auf funktionierende Taste umlegen

Bei meinem Thinkpad X260 trat kürzlich folgender Tastaturdefekt auf: die “-” bzw. “_”-Taste hörte spontan auf zu funktionieren, während alle anderen Tasten völlig unbeeinträchtigt sind. Bis die Ersatztastatur geliefert und eingebaut ist, kann es noch was dauern. Das NERVT! Denn um sich mit der Tastatur effektiv auf der Kommandozeile zu bewegen ist die “-” bzw. “_”-Taste (rechts neben der “.” bzw. “:”-Taste) unabdingbar, z.B. für Argumente etc. Oder auch für Smileys!

Also musste erstmal was passieren, und glücklicherweise befindet sich bei dem Tastaturlayout des Thinkpads ganz in der Nähe der nun “verstummten” Taste eine andere, die ich eigentlich nicht brauche: die “Druck”-Taste in der untersten Tastenreihe, eigentlich da wo früher ContextMenu gewesen wäre, zwischen “Alt Gr” und “right Strg”. Damit bietet sich also an, die kaputte Taste hierdrauf zu legen, das geht ja noch fast als exotisches Layout durch. Manche Laptoptastaturen sind da schlimmer!

Was ist zu beachten? Damit es systemweit läuft trotz Wayland und so weiter, hab ich mich analog zur Beschreibung unter https://www.beatworm.co.uk/blog/keyboards/gnome-wayland-xkb für die Lösung entschieden, nur drei Dateien zu bearbeiten: ein neues “Unter-Layout” als Tastaturdefinition mit der entscheidenden Veränderung der”Druck”taste (oder eigentlich <PRSC> Print Screen) unter /usr/share/X11/xkb/symbols/fixdefect erstellen, und in udev-Rule und udev-sprechender Liste bekanntmachen. Dann im dconf-Editor die Änderung aktivieren.

1. Erstelle /usr/share/X11/xkb/symbols/fixdefect:

partial modifier_keys
xkb_symbols "swapminusprint" {
            replace key <PRSC> { type[Group1]="FOUR_LEVEL_PLUS_LOCK", symbols[Group1]=[ minus, underscore, endash, emdash, underscore ] };
};

2. Modifiziere /usr/share/X11/xkb/rules/evdev:

ergänze im Abschnitt “! option = symbols” folgende Zeile:

fixdefect:swapminusprint = +fixdefect(swapminusprint)

3. Modifiziere /usr/share/X11/xkb/rules/evdev.lst:

ergänze irgendwo/am Ende folgende Zeile:

fixdefect:swapminusprint Fix defective minus/underscorekey by swapping with printscreen

4. Starte dconf-Editor und ändere den Eintrag /org/gnome/desktop/input-sources/xkb-options:

Bei custom-value (das ist quasi eine Liste!) unseren neuen Eintrag ergänzen:

dconf-Editor zeigt den Pfad /org/gnome/desktop/input-sources/xkb-options

(obige Notizen beziehen sich auf die zum Zeitpunkt der Erstellung aktuelle stable-x64-Distribution von Debian GNU/Linux, 11.1 bullseye, mit Gnome3 und Wayland)