In X11 (auf der Konsole weiß ich nicht) können Sie dies tun, indem Sie das Verhalten der Escape-Taste neu definieren. Ich habe mir die Definition "shift (break_caps)" angesehen, um zu sehen, wie es funktioniert, und sie angepasst.
In dieser Antwort auf xkb finden Sie weitere Informationen dazu, wie / wo die lokal geänderten Dateien abgelegt und geladen werden sollen.
Und um das zu tun, was Sie wollen, benötigen Sie in der lokalen Symboldatei (z. B. :) ~/.xkb/symbols/mysymbols
einen Abschnitt wie diesen:
partial modifier_keys
xkb_symbols "esc_breaks_caps" {
key <ESC> {
type = "ALPHABETIC",
actions [Group1] = [
SetMods(modifiers=none),
SetMods(modifiers=Lock,clearLocks)
]
};
};
und in der lokalen Keymap-Datei (zB : ~/.xkb/keymap/mykbd
; Sie können sie mit erstellen setxkbmap -print > ~/.xkb/keymap/mykbd
) ändern Sie die xkb_symbols
hinzuzufügende Zeile +mysymbols(esc_breaks_caps)
.
Sie können es jetzt laden mit: xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
und durch Drücken Escwird der CapsLock-Status entfernt (tatsächlich tritt der Effekt bei der Freigabe von Esc auf; ich denke, dass nur Modifikatortasten unmittelbare Wirkung haben; andere haben den Effekt nach ihrer Freigabe.)
Oh, wenn Sie auch die Escape- und CapsLock-Tasten tauschen möchten; Verwenden Sie dies stattdessen (und Sie fügen "+ mysymbols (esc_swap_and_breaks_caps)" in Ihre mykbd-Datei ein):
partial modifier_keys
xkb_symbols "esc_swap_and_breaks_caps" {
replace key <CAPS> {
type = "ALPHABETIC",
symbols = [ Escape, Escape ],
actions [Group1] = [
SetMods(modifiers=none),
SetMods(modifiers=Lock,clearLocks)
]
};
replace key <ESC> { [ CapsLock, CapsLock ] };
};
Beachten Sie, dass die physischen Schlüssel <CAPS>
und sind <ESC>
. <CAPS>
(Taste CapsLockin Ihre Tastatur <ESC>
eingraviert Esc) Escape senden und (Taste eingraviert ) CapsLock senden, wobei <CAPS>
(Escape senden) auch der Capslock-Status deaktiviert wird
vim
oder den gesamten Desktop hinzufügen ?