In X11 (su console non lo so) puoi farlo ridefinendo il comportamento del tasto Esc. Ho guardato la definizione "shift (break_caps)" per vedere come funziona e l'ho adattata.
Guarda questa risposta su xkb per maggiori dettagli su come / dove mettere i file modificati localmente e caricarli.
E per fare quello che vuoi, hai bisogno nel file dei simboli locali (es:) ~/.xkb/symbols/mysymbols
una sezione come questa:
partial modifier_keys
xkb_symbols "esc_breaks_caps" {
key <ESC> {
type = "ALPHABETIC",
actions [Group1] = [
SetMods(modifiers=none),
SetMods(modifiers=Lock,clearLocks)
]
};
};
e nel file keymap locale (es:; ~/.xkb/keymap/mykbd
puoi crearlo con setxkbmap -print > ~/.xkb/keymap/mykbd
) cambia la xkb_symbols
riga da aggiungere +mysymbols(esc_breaks_caps)
.
Ora puoi caricarlo con: xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
e premendo Escrimuoverai lo stato CapsLock (in realtà, l'effetto si verifica sul rilascio di Esc; Penso che solo i tasti modificatori abbiano effetto immediato; altri l'effetto è dopo il loro rilascio.)
Oh, se vuoi scambiare anche i tasti Escape e CapsLock; quindi usa questo invece (e inserisci "+ mysymbols (esc_swap_and_breaks_caps)" nel tuo file mykbd):
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 ] };
};
notare che le chiavi fisiche sono <CAPS>
e <ESC>
; <CAPS>
(tasto inciso CapsLocknella tastiera) invia Escape e <ESC>
(tasto inciso Esc) invia CapsLock, con <CAPS>
(inviando Escape) anche lo stato di blocco maiuscole
vim
o per il desktop completo?