Jak trwale przełączyć Caps Lock i Esc


116

Jak mogę na stałe przełączać funkcje Caps Locki Esckluczowe w Saucy? Mogę użyć tego polecenia, aby zrobić to tymczasowo (do ponownego uruchomienia):

/usr/bin/setxkbmap -option "caps:swapescape"

Próbowałem dodać to polecenie jako aplikację startową, ale wydaje się, że nic nie robi.


1
Włożyłem to polecenie do siebie, ~/.bashrcaby było powtarzane między restartami systemu. ( ctrl:nocapsdla mnie jednak dla tmux)
opyate

2
@opyate Umieściłbym to polecenie w ~ / .profile, aby działało tylko raz po interaktywnym logowaniu.
suzanshakya

Odpowiedzi:


125

Innym sposobem na to jest poprzez dconf-editor. Ta metoda ma kilka dodatkowych kroków gnome-tweak-tool, ale jest przydatna, jeśli nie chcesz pobierać zależności z narzędzia do poprawiania.

Umożliwi to korzystanie ze caps:swapescapeskładni i automatyczne wprowadzenie zmiany na stałe.

sudo apt-get install dconf-tools

Po uruchomieniu dconf-editorprzejdź do org >> gnome >> desktop >> input-sources

Dodaj potrzebne opcje xkb-options. Ciągi opcji są otoczone pojedynczymi cudzysłowami i oddzielone przecinkami. Uważaj, aby nie usunąć nawiasów na końcach.

Opcje xkb w edytorze dconf

Możesz użyć tej metody, aby wprowadzić większość tradycyjnych opcji xkb, które nie są już dostępne w Ustawieniach systemu >> Wprowadzanie tekstu . Wyjątkiem są ustawienia przełączania układów klawiatury, które obecnie nie działają z powodu błędu.

Aby wyświetlić listę opcji i składnię, użyj man 7 xkeyboard-configw terminalu.

Inną powszechną opcją, która może być użyta, jest terminate:ctrl_alt_bkspumożliwienie ctrl+ alt+ backspacezakończenia sesji X.


5
+1 za odniesienie keyboard-config(7), tego właśnie szukałem.
ulidtko

61
Możesz to również zrobić z wiersza poleceń, bez instalowania edytora dconf:dconf write /org/gnome/desktop/input-sources/xkb-options "['caps:escape']"
Pi Delport

4
Nie uruchamiaj powyższej komendy przy użyciu „sudo”, ponieważ wydaje się, że to ustawienie zależy od konkretnego użytkownika.
Bohr

11
Pamiętaj, że musisz użyć, 'caps:swapescape'jeśli chcesz zamienić dwa klucze (zamiast tylko przypisać Escdo Caps Lock).
thameera

1
lub możesz zrobićgsettings set org.gnome.desktop.input-sources xkb-options "['caps:escape']"
ACykliczny

50

Rozwiązanie, które powinno działać w przypadku większości dystrybucji Linuksa:

setxkbmap -option caps:swapescape

Możliwe są inne opcje:

  • caps:none dezaktywować
  • caps:escape aby była to dodatkowa ucieczka
  • caps:super aby uczynić go dodatkowym klawiszem super (Windows).

Aby ta~/.profile funkcja działała podczas uruchamiania , należy ją włączyć , ponieważ będzie ona działać tylko po interaktywnym logowaniu.


1
Działa to w Ubuntu 14.04, Unity.
Czad

2
Pracowałem także dla Ubuntu 16.04
Jesse Chan

4
od 18.04, wprowadzanie setxkbmapkomend ~/.xsessionrci ~/.profilenie wydaje się już utrzymywać ustawień między logowaniami / restartami
Conrad.Dean

2
@ Conrad.Dean Używam tego w Mennicy 19, która jest oparta na 18.04 LTS: Tutaj nie ma problemów. Ustawienia nie powinny się utrzymywać, ale są ładowane przy logowaniu.
jojo

~/.profilejest kiepskim miejscem do umieszczenia tego - ten plik jest odczytywany przy każdej powłoce logowania. Umieść go w pliku używanym podczas uruchamiania X11, np . ~/.xinitrcLub ~/.xsession.
sarnold

39

Ok, znalazłem sposób na zrobienie tego za pomocą gnome-tweak-tool.

Z terminalu uruchom

sudo apt-get install gnome-tweak-tool -y && gnome-tweak-tool

Opcję zamiany Caps Lock i Esc można znaleźć w „Pisanie -> Zachowanie klawisza Caps Lock”.


5
Na Ubuntu 14 układ okna jest bardzo paskudny, ale nadal działa.
uvasal

1
Tak, myślę, że gnome-tweak-toolnie należy go używać do tego zadania, ponieważ istnieją domyślne narzędzia do wykonania tego zadania.
Léo Léopold Hertz -

To zdecydowanie najlepsze rozwiązanie.
Jason McVetta,

2
Ubuntu> 18.04 można znaleźć w Keyboard & Mouse> Additional Layout Options>Caps Lock Behavior
Adracus

To zadziałało dla mnie 19.04. Nie udało mi się utrzymać żadnego z rozwiązań xmodmapani setxkbmaprozwiązania w dniu 19.04.
ahmorris

23

Możesz użyć xmodmap w terminalu, aby zamienić za Caps Lockpomocą Esc:

xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"   #this will make Esc to act as Caps Lock
xmodmap -e "keycode 66 = Escape NoSymbol Escape"        #this will make Caps Lock to act as Esc

Aby uzyskać tę zmianę dla każdej sesji, po uruchomieniu poprzednich poleceń utwórz plik .xmodmapz nowymi mapami klawiszy, używając następującego polecenia:

xmodmap -pke > ~/.xmodmap

Następnie utwórz plik o nazwie .xinitrcw katalogu domowym zawierający następujący wiersz / polecenie:

xmodmap .xmodmap

6
To nie działa w systemie Ubuntu 14.04. Próbowałem również pliku .xsessionrc, ale również nie działał.
miguel.martin

Jak cofnąć ustawienia?
hlin117

@ hlin117 Wyczyść zawartość ~/.xmodmappliku (uruchamiając tylko > ~/.xmodmapw swoim terminalu), a następnie uruchom ponownie sesję.
Radu Rădeanu

2
W systemie Ubuntu 14.04 powoduje to odwzorowanie Escape na Caps_Lock, ale Caps_Lock nie odwzorowuje Escape.
użytkownik1691145,

1
Cześć, zrobiłem to i działa. Jednak oprócz esc jest związany z Capslock, Caps Lock jest teraz związany zarówno z Caps Lock, jak i Escape. Czy to możliwe, że środowisko pulpitu nadal jakoś to zastępuje? Używam KDE
xor

18

Podobny do @ Radu odpowiedź , ale zgodny z 14,04 (patrz również tę odpowiedź ).

xmodmap -e "remove Lock = Caps_Lock"
xmodmap -e "keycode 9 = Caps_Lock NoSymbol Caps_Lock"
xmodmap -e "keycode 66 = Escape NoSymbol Escape"
xmodmap -pke > ~/.xmodmap

Jeśli to nie działa, wymień:

xmodmap -e "remove Lock = Caps_Lock"

z:

xmodmap -e "clear Lock"

Nie działa w Linux Mint 17.1 (opartym na Ubuntu) :(
Jan Warchoł

3
musiał zmienić „remove Lock = Caps_Lock” na „wyczyść Lock”, aby zadziałał
Sofia

13

Przejdź do ikony kół zębatych w prawym górnym rogu ekranu i:

  • kliknij Ustawienia systemu
  • układ klawiatury
  • opcje ... (prawy dolny róg)
  • klawisz Caps Lock zachowanie (4. w dół)
  • Przewiń w dół i wybierz „Zamień ESC i Caps Lock”.

Gotowy!


Joe : Witamy w Ask Ubuntu! ;-) Czy mógłbyś przejrzeć moje zmiany, a także przejrzeć pomoc
edycyjną,

2
To powinna być najlepsza odpowiedź na ubuntu i mint
prasad

Czy robi to coś oprócz wymienionych tutaj skryptowych aktualizacji? Wolę to zrobić w skrypcie.
Ben Creasy,

7

Uruchom to polecenie raz na terminalu. dconfpowinien być już zainstalowany z gnome 3.

dconf write "/org/gnome/desktop/input-sources/xkb-options" "['caps:swapescape']"

To rozwiązanie właśnie przetestowało OK na RedHat Enterprise Linux 7.
Chad Skeeters



2

Jestem późno na odpowiedź, ale zwykły sposób, aby zamienić Esca Ctrlto z następujących linii w ~/.Xmodmappliku:

clear Lock
keysym Caps_Lock = Escape
keysym Escape = Caps_Lock
add Lock = Caps_Lock

Powinno to działać ze wszystkimi środowiskami graficznymi (KDE, Gnome) w większości popularnych dystrybucji (Ubuntu i Debian, Fedora i RH).


nie działało na Ubuntu 16.04. Czy mógłbyś prosić o więcej?
MaikoID,

@MaikoID: Jest to w przybliżeniu kanoniczny sposób unixowego sposobu zamiany CapsLock i Esc. Rozumiem, że nowsze wersje Ubuntu z Unity łamią wiele „kanonicznych unixów”, dlatego wydaje się, że wszystkie inne odpowiedzi tutaj odnoszą się do niektórych metod specyficznych dla wersji lub specyficznych dla DE (Unity). Na co warto, to nie działa na Kubuntu, które ja osobiście używać.
dotancohen,

2

W przypadku Ubuntu 18.04 i Gnome 3.30 działa to dla mnie:

gsettings set org.gnome.desktop.input-sources xkb-options "['caps:swapescape']"

wciąż pracuje 19.04.
Przyspieszenie-G

1

W graficznym interfejsie użytkownika KDE GUI można to zrobić z poziomu układu klawiatury w ustawieniach systemu. Kliknij „Urządzenia wejściowe”. W lewym górnym rogu kliknij Klawiatura. Następnie kliknij kartę „Zaawansowane”. Pod „Zachowanie klawisza Caps Lock” wybierz „Przełącz Escape i Capslock”.


Wspaniale, że udzieliłeś odpowiedzi na to pytanie. Czy możesz edytować swoje pytanie, aby nieco rozwinąć, być może z pożądanym rezultatem po wybraniu „Zamień ESC i Caps Lock”. jest zaznaczone.
Phil UK

Witaj i zaproś do Ask Ubuntu! W obecnym stanie ta odpowiedź naprawdę nie jest kompletna i dlatego istnieje ryzyko usunięcia. Przeczytaj naszą stronę pomocy Jak odpowiedzieć , a następnie wróć i edytuj swoją odpowiedź, aby podać więcej szczegółów, w szczególności sposób , w jaki rozwiązuje to pytanie PO. Ponadto zapoznaj się z naszą wycieczką, aby uzyskać odznakę i lepsze pojęcie o tym, jak działa nasza strona. Na razie!
Kaz Wolfe

dzięki twoim radom. Chciałbym, żeby ta edycja była taka, jakiej chcesz.
farhad goodarzi

Do Twojej wiadomości, link z twoją domeną wydaje się nie działać (przynajmniej dla mnie), ale poprzednia domena adresu IP działa.
Andrew T.

1

„Układ klawiatury” z odpowiedzią „przełącznik Escape i Capslock” powyżej nie jest już ważny w systemie Ubuntu 16.04 i nowszych (czy to było wcześniej? Dunno). Odpowiedź: aby uniknąć zgiełku z uprawnieniami itp., Po prostu przełącz się na root, zanim zaczniesz to wszystko robić sui wprowadzając hasło roota. Następnie:

    cd /etc/default/
    vim keyboard

Tam zobaczysz linię:

    XKBOPTIONS=""

Zmień na:

    XKBOPTIONS="caps:swapescape"

Zamknij vim z zapisz:

    :wqa

Restart.

I to będzie trwałe , obiecuję. :)


0

Uwaga: Nie zamienia się, tylko mapy Caps Lock blokują Esc. (Było to wystarczająco dobre dla mojego przypadku użycia vima.)

Dla Ubuntu 16:04 (ze środowiskiem i3): utworzono plik ~ / .xessionrc z zawartością

xmodmap -e "clear lock" #disable caps lock switch
xmodmap -e "keysym Caps_Lock = Escape" #set caps_lock as escape

1
Chociaż ta odpowiedź może rzeczywiście rozwiązać 1/2 problemu, o który pytał PO, pojawia się w kolejce odpowiedzi niskiej jakości z powodu (zakładam) długości. Możesz rozważyć rozszerzenie go o dalsze szczegóły. Jak i dlaczego to działa.
Elder Geek
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.