Dans X11 (sur la console, je ne sais pas), vous pouvez le faire en redéfinissant le comportement de la touche Échap. J'ai regardé la définition de "shift (break_caps)" pour voir comment cela fonctionne et je l'ai adaptée.
Regardez cette réponse sur xkb pour plus de détails sur comment / où placer les fichiers modifiés localement et les charger.
Et pour faire ce que vous voulez, vous avez besoin dans le fichier de symboles locaux (par exemple:) d' ~/.xkb/symbols/mysymbols
une section comme celle-ci:
partial modifier_keys
xkb_symbols "esc_breaks_caps" {
key <ESC> {
type = "ALPHABETIC",
actions [Group1] = [
SetMods(modifiers=none),
SetMods(modifiers=Lock,clearLocks)
]
};
};
et dans le fichier keymap local (par exemple:; ~/.xkb/keymap/mykbd
vous pouvez le créer avec setxkbmap -print > ~/.xkb/keymap/mykbd
) changez la xkb_symbols
ligne à ajouter +mysymbols(esc_breaks_caps)
.
Vous pouvez maintenant le charger avec: xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
et appuyer sur Escsupprimera l'état CapsLock (en fait, l'effet se produit sur la sortie de Esc; je pense que seules les touches de modification ont un effet immédiat; pour d'autres, l'effet est après leur libération.)
Oh, si vous voulez également échanger les touches Escape et CapsLock; puis utilisez-le à la place (et vous mettez "+ mysymbols (esc_swap_and_breaks_caps)" dans votre fichier 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 ] };
};
notez que les clés physiques sont <CAPS>
et <ESC>
; <CAPS>
(clé gravée CapsLockdans votre clavier) envoyer Escape et <ESC>
(clé gravée Esc) envoie CapsLock, avec <CAPS>
(envoi Escape) également désactivant l'état de verrouillage des majuscules
vim
, ou le bureau complet?