Feststelltaste mit sinnvoller Doppelfunktion: Esc und Strg
In ihrer handelsüblichen Funktionsweise ist die Feststelltaste (caps lock) wenig nützlich. Viele Computernutzer finden sie eher störend, nicht zuletzt bei der Eingabe von Passwörtern. Man aktiviert sie leicht unabsichtlich, gerade weil sie von der mittleren Tastenreihe (home row) so leicht erreichbar ist.
Es ist möglich, ihr eine neue Belegung zu geben, wobei zwei Alternativen naheliegend sind. Die linke Steuerungstaste (Strg) wird von den allermeisten Anwendungen genutzt, ist dafür aber vergleichsweise umständlich nur mit dem kleinen Finger erreichbar. Bei intensiver Nutzung kann dies zu Beschwerden führen, bekannt etwa als Emacs-Pinky. Auch eine Verwendung als Escape-Taste kann das Leben sehr vereinfachen, nicht zuletzt für Nutzer modaler Texteditoren wie Neovim oder Helix.
Für die Neubelegung gibt es viele hilfreiche Anleitungen. Unter X11 ist das Tutorial von Elijan Mastnak empfehlenswert. Er zeigt darin, wie man der Feststelltaste eine Doppelfunktion gibt: Kurzes Antippen für Esc, längeres Gedrückthalten für Strg.
Man gewöhnt sich schnell an diesen Komfort und ich wollte ihn auch nach meinem Wechsel zu Fedora nicht mehr missen. Doch die Umsetzung unter Wayland erwies sich als überraschend schwierig – daher dieser Artikel.
Tastenneuzuordnung mit XKB
Wayland empfiehlt die X keyboard extension (kurz XKB) zur Konfiguration der Tastatur. Zugegeben, ein wenig kontraintuitiv. Für eine einfache Neuzuordnung – Feststelltaste für Esc oder Feststelltaste für Strg – sind keine weiteren Werkzeuge erforderlich.
Individuelle Konfigurationen werden unter /etc/X11/xorg.conf.d/
abgelegt. Das Arch Wiki
zeigt beispielhaft, wie die Feststelltaste als Esc genutzt werden kann:
Section "InputClass"
Identifier "keyboard defaults"
MatchIsKeyboard "on"
Option "XKbOptions" "caps:escape"
EndSection
Diese Regeln kann etwa in einer Datei 90-custom-kbd.conf
gespeichert werden, wobei die Zahl die Priorität angibt. Der Identifier ist für diese Konfiguration nicht weiter entscheidend, könnte jedoch für Verweise in anderen Regeln verwendet werden. Der Wert für MatchIsKeyboard
zeigt an, dass die darauffolgende Regel für Tastaturen (als Gerätetyp) angewendet werden soll.
Der Fokus liegt natürlich auf der letzten Zeile der Sektion. Der Wert caps:escape
bewirkt, dass die Feststelltaste als Esc fungiert. Wer die Taste lieber als Strg verwenden möchte, setzt stattdessen ctrl:nocaps
. Backspace, Super (“Windows-Taste”) oder Umschalttaste (Shift) sind weitere denkbare Optionen.
Für einen Überblick über alle Möglichkeiten und die dazu notwendigen Werte, kann folgender Befehl hilfreich sein:
grep -E "(ctrl|caps):" /usr/share/X11/xkb/rules/base.lst
Tastenneuzuordnung mit Keyd
Ich konnte nicht herausfinden, ob mit XKB auch eine dynamische Belegung möglich ist. Jedoch habe ich für diesen Zweck eine Alternative gefunden: keyd ist ein Werkzeug, mit dem sich die Doppelfunktion von Esc und Strg in wenigen Schritten realisieren lässt.
Leider ist es in Fedora nicht Teil der offiziellen Paketquellen. Der Contributor alternateved hat zu diesem Zweck ein COPR-Repository erstellt, mit dem wir ein keyd-Paket per DNF installieren können.
sudo dnf copr enable alternateved/keyd
sudo dnf install keyd
Unter /etc/keyd/default.conf
setzen wir nun die gewünschte Konfiguration:
[ids]
*
[main]
# Maps capslock to escape when pressed and control when held.
capslock = overload(control, esc)
# Remaps the escape key to capslock
#esc = capslock
Wer weiterhin eine Feststellfunktionalität nutzen möchte, der kann die letzte Zeile einkommentieren.
Keyd ist ein Hintergrundprozess, der aktiviert werden muss. Wie der Name der Anwendung nahelegt, wird dazu systemd genutzt:
systemctl start keyd
systemctl enable keyd
Durch die erste Zeile wird der Daemon für die laufende Sitzung gestartet. Mit der zweiten Zeile wird festgelegt, dass der Prozess beim Hochfahren automatisch gestartet werden soll.