Obecnie konfiguruję domyślny układ klawiatury w następujący sposób:
setxkbmap -layout us -variant dvorak -option ctrl:nocaps,[...]
Wyłącza klawisz Caps Lock i czyni go dodatkowym klawiszem Ctrl wraz z mnóstwem innych opcji.
Chciałbym wykonać następujące czynności, aby zmienić układ klawiatury:
setxkbmap -layout us -variant dvorak-l -option ctrl:swapcaps
Nie powoduje to jednak ponownego włączenia klawisza Caps Lock; Zarówno lewy klawisz kontrolny, jak i klawisz Caps pozostają jak dotąd klawiszami kontrolnymi.
Wiem, że mogę wyczyścić całą listę opcji, ale ze względu na łatwość konserwacji wolałbym nie kopiować tych opcji. Jak ponownie włączyć Caps Lock?
Aktualizacja:
Patrząc na naciśnięcia klawiszy za pomocą xev (1), wydaje się, że ctrl: nocaps daje znak Control_L
dla obu klawiszy, a ctrl: swapcaps „przywraca” klawisz Caps Lock (naciśnięcie klawisza daje Caps_Lock
). Jednak dioda LED Caps Lock nie świeci ani nie działa.
Przejrzenie xkeyboard-config/symbols/ctrl
pliku w źródłach X.org wskazuje na problem:
xkb_symbols "nocaps" {
replace key <CAPS> { [ Control_L, Control_L ] };
modifier_map Control { <CAPS>, <LCTL> };
};
xkb_symbols "swapcaps" {
replace key <CAPS> { [ Control_L ] };
replace key <LCTL> { [ Caps_Lock ] };
};
Ta ostatnia opcja nie ma linii modifier_map, cokolwiek by to zrobiło
źródło
Odpowiedzi:
Następujące polecenia powinny działać:
lub
Powyższe polecenia działają dobrze, aby przywrócić domyślne zachowanie, którego na szczęście prawie nigdy nie potrzebuję.
Zwykle mapuję Capslock do Control (na szczęście VI / VIM obsługuje CTRL-C zamiast ESC) za pomocą następującego polecenia:
źródło
Próbować
setxkbmap -option -layout us -variant dvorak-l -option ctrl:swapcaps
Z strony podręcznika:
Ironia polega na tym, że tutaj
-option ctrl:swapcaps
faktycznie zastępuje-option ctrl:nocaps
- myślę, że zachowanie się zmieniło.Edycja: Jak stwierdził PO, chce uniknąć wyczyszczenia opcji (jak to zrobiono w powyższy sposób).
/usr/share/X11/xkb/rules/xorg.lst
pokazuje opcjęctrl:aa_ctrl
(kontrola w lewym dolnym rogu), która wydaje się tutaj resetować Caps Locknocaps
.Wydaje mi się, że warto spróbować. Możesz także spojrzeć na listę (
grep ctrl\:
) i sprawdzić, czy może coś jeszcze zadziałać, na wypadek gdyby to nie zadziałało.Jeśli nie ma takiej opcji, myślę, że rozwiązaniem jest zhakowanie bieżącej mapy klawiszy, poprzez ponowne skojarzenie Caps Lock z klawiszem Caps Lock (ale nie mam z tym doświadczenia, poza przekonaniem, że istnieje narzędzie, które pozwala ci to zrobić to z jednowarstwową).
źródło
swapcaps
faktycznie ponownie włącza tutaj blokadę Caps), ale z/usr/share/X11/xkb/rules/xorg.lst
, widzę, że jest opcjactrl:aa_ctrl
(kontrola w lewym dolnym rogu), która wydaje się resetować blokadę Caps ponocaps
tym.xmodmap
ale nie jestem pewien, jak go używaćistnieje opcja „caps: capslock” (która odwzorowuje dodanie „+ capslock (capslock)” do xkb_symbols), która włącza capslock.
Jednak ta opcja (może wszystkie wielkie litery: xxxxx?) Jest dodawana przed istniejącymi ctrl: xxxxx; ponieważ ctrl: swapcaps redefiniuje klawisz Capslock, ta opcja nie działa.
Tak więc absolutnie musisz usunąć wszystkie opcje i faktycznie umieścić te, które chcesz; sposób, w jaki istnieją opcje, nie powinien cofać działania poprzedniej, a mając sprzeczne opcje (np. dwie (lub więcej), które definiują ten sam klucz), nie można zdefiniować ich kolejności.
źródło