W X11 (na konsoli nie wiem) możesz to zrobić, zmieniając zachowanie klawisza Escape. Przejrzałem definicję „shift (break_caps)”, aby zobaczyć, jak to działa, i dostosowałem ją.
Spójrz na tę odpowiedź na xkb, aby uzyskać więcej informacji o tym, jak / gdzie umieścić lokalnie zmodyfikowane pliki i załadować je.
A do robienia tego, co chcesz, potrzebujesz w lokalnym pliku symboli (np . ~/.xkb/symbols/mysymbols
:) takiej sekcji:
partial modifier_keys
xkb_symbols "esc_breaks_caps" {
key <ESC> {
type = "ALPHABETIC",
actions [Group1] = [
SetMods(modifiers=none),
SetMods(modifiers=Lock,clearLocks)
]
};
};
oraz w lokalnym pliku mapy klawiszy (np .: ~/.xkb/keymap/mykbd
; możesz go utworzyć za pomocą setxkbmap -print > ~/.xkb/keymap/mykbd
) zmień xkb_symbols
wiersz, aby dodać +mysymbols(esc_breaks_caps)
.
Możesz teraz załadować go za pomocą: xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
a naciśnięcie Escusunie stan CapsLock (w rzeczywistości efekt pojawia się po wydaniu Esc; myślę, że tylko klawisze modyfikujące mają natychmiastowy efekt; inne efekt następuje po ich zwolnieniu).
Och, jeśli chcesz również zamienić klawisze Escape i CapsLock; użyj tego zamiast tego (i wstaw „+ mysymbols (esc_swap_and_breaks_caps)” w pliku 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 ] };
};
zwróć uwagę, że klucze fizyczne to <CAPS>
i <ESC>
; <CAPS>
(klucz wygrawerowane CapsLockna klawiaturze) i wyślij Ucieczka <ESC>
(klucz grawerowane Esc) wysyła CapsLock pokojowe <CAPS>
(wysyłanie escape) także rozbrojenie stan CapsLock
vim
całego pulpitu?