Jak ponownie przypisać klawisze Caps Lock i Ctrl?

77

Chciałbym ponownie mapować klucze tak, aby Ctrlzachowywały się jak Caps Lockklucz i odwrotnie. Ponadto, jeśli to możliwe, chciałbym, aby ustawienia były dostępne tylko dla aktualnie zalogowanego użytkownika. Jak mogę to osiągnąć?

Jestem użytkownikiem vima, w przeciwieństwie do innych osób korzystających z tego komputera, więc chciałbym te ustawienia tylko dla mojego konta.

k0pernikus
źródło
1
Czy to pomaga?
Mitch
Może to być pomocne: the-flat-trantor-society.blogspot.com/2013/12/…
Keith Thompson
4
Jestem przerażony, że w dzisiejszych czasach nie jest to standardowa funkcja w ustawieniach Linuksa.
Edward Falk

Odpowiedzi:

59

13.10+:

Zainstalować i używać gnome-tweak-tool> Keyboard & Mouse> Keyboard> Additional Layout Options> Caps Lock behavior.

Przed 13.10:

Otwórz okno dialogowe Preferencje klawiatury ( System -> Preferences -> Keyboard). Na karcie układu kliknij Options...przycisk. Rozwiń Ctrl key positionsekcję i wybierz Swap Ctrl and Caps Lock.

Te ustawienia powinny być stosowane przy każdym logowaniu i będą miały wpływ tylko na twoje konto użytkownika.

James Henstridge
źródło
2
Ta opcja zniknęła w Ubuntu Saucy. Nie jestem pewien, jak to wyjaśnić, ale po prostu go nie ma. Preferencje klawiatury nie mają „zakładki Układ”, ale jest przycisk „Ustawienia układu”, a kiedy klikam, przenosi mnie do zakładki „Źródła wejściowe” panelu „Region i język”, której w tajemniczy sposób brakuje jakiegokolwiek rodzaju przycisku „Opcje”. Jedyny przycisk otwiera wirtualną klawiaturę ekranową, która wyświetla mi zepsuty układ klawiatury bez możliwości zmiany, które klawisze zachowują się w jaki sposób.
robru
4
W przypadku Ubuntu 13.10 musisz użyć narzędzia gnome-tweak-tool.
Jeremy Bicha,
1
Opcja przed 13.10 działa dla mnie w 14.04
JeremyKun
Taki sam jak @JeremyKun. W moim przypadku przy użyciu 14.04 rozwiązanie w wersji wcześniejszej niż 13.10 działało, ale wersja 13.10+ nie
matiascelasco,
Dzięki za tę odpowiedź! To gnome-tweak-tooljest naprawdę miłe; możesz go również używać do drobiazgów, takich jak „użyj Caps Lock do przełączania układów klawiatury” (osobisty ulubiony) i „przełącz Alt / Win” (co jest przydatne, jeśli jesteś długoletnim użytkownikiem komputera Mac ...)
na Lundberg,
63

Jednym z najlepszych sposobów na to graficznie jest zainstalowanie narzędzia Gnome Tweak :

sudo apt-get install gnome-tweak-tool

  • Otwórz narzędzie do poprawiania i kliknij sekcję pisania w lewej kolumnie.
  • Powinieneś teraz zobaczyć zachowanie klawisza Caps Lock po lewej stronie.
  • Wybierz Make Caps Lock jako dodatkowy klawisz Ctrl zamiast Wyłączony z rozwijanej listy i powinieneś być dobry.

Poza tym panel ustawień nie zajmuje dużo czasu na mojej maszynie, więc nie mam pojęcia, na czym polega problem.

Ciesz się swoim nowym Ctrlkluczem!

Pierre Thalamy
źródło
Chciałem użyć mojego klawisza CAPS, aby wyłączyć ekran. Skonfigurowałem to wcześniej w oknie Ustawienia systemowe> okno klawiatury, ale CAPS nadal przełączał stan CapsLock i diodę LED. Tak więc wyłączyłem klucz za pomocą narzędzia, które poleciłeś (które ma pewne błędy wyświetlania btw. - przezroczyste tło okna), co również przestało działać. Po wyłączeniu musiałem ponownie ustawić skrót, aby działał. Ustawiono na wartość 0xff lub coś takiego zamiast CAPS. Pomyślałem, że ta procedura może pomóc niektórym przyszłym czytelnikom o podobnych życzeniach.
Bajt Dowódca
Kiedy uruchamiam gnome-tweak-tool z wiersza poleceń, pojawia się komunikat o błędzie informujący, że powłoka nie działa DBus, a następnie wszelkie próby zmiany ustawień nie mają żadnego skutku.
Edward Falk
1
Aktualizacja: narzędzie gnome-tweak działa tylko wewnątrz powłoki gnome
Edward Falk
1
w mojej lewej kolumnie nie ma sekcji „pisanie”: tylko Pulpit, Czcionki, Powłoka, Rozszerzenia powłoki, Motyw, Windows.
Reb.Cabin
2
Zwróć uwagę, że opcja zamiany narzędzia gnome-tweak-tool znajduje się w pozycji „Klawisz Ctrl”, a nie „Zachowanie klawisza Caps Lock”.
Phil Goetz
58

Oto sposób na zrobienie tego bez instalowania dodatkowego oprogramowania:

setxkbmap -layout us -option ctrl:nocaps

Źródło:

Jorge Castro
źródło
3
To nie przetrwa po ponownym uruchomieniu. Jak mogę to zrobić na stałe? Wolałbym nie umieszczać tego w skrypcie startowym (np. Bashrc).
nic,
8
@nic Musisz także zmienić plik sudo vi /etc/default/keyboardi zmienić XKBOPTIONS="ctrl:nocaps". Następnie uruchom polecenie Jorge, ale jako setxkbmap -option ctrl:nocapstakie nie zmienia domyślnego układu klawiatury.
Léo Léopold Hertz
43

Otwórz następujące elementy do edycji:

sudo vi /etc/default/keyboard

I edytuj XKBOPTIONS="ctrl:swapcaps"

Następnie ponownie skonfiguruj:

sudo dpkg-reconfigure keyboard-configuration

lub

/usr/bin/setxkbmap -option "ctrl:swapcaps"
imię
źródło
Pytanie brzmiało: „Chciałbym te ustawienia tylko dla mojego konta”. Edycja / etc / default / keyboard zmieni to dla wszystkich.
narciarzy
1
masz 3 kroki (1, 2, 3). Czy masz na myśli [(1 i 2) lub 3] lub [1 i (2 lub 3)]?
jgomo3
Wspaniały! Uruchomiłem sudo dpkg-reconfigure keyboard-configurationi naciśnij kilka wejść, i zadziałało !!! EDYCJA: jednak po wylogowaniu i ponownym zalogowaniu ustawienie zniknęło. :(
LeOn - Han Li
24

Aby trwale zmienić zachowanie:

  1. biegać dconf-editor

  2. Wybierz org.gnome.desktop.input-sources

  3. Zmień xkb-optionsna ['ctrl:nocaps'](lub dodaj go do dowolnych istniejących opcji)

lub w wierszu poleceń ( Ostrzeżenie - to zastępuje istniejące ustawienia! ):

gsettings set org.gnome.desktop.input-sources xkb-options "['ctrl:nocaps']"
Geoff Jacobsen
źródło
Tę jedną wkładkę można również dodać do ~ / .profile w celu przenoszenia.
jthetzel
Nie działało to dla mnie na Kubuntu 16.04, nawet po ponownym uruchomieniu.
zplizzi
3
Ustawienia dconf obowiązują natychmiast i są trwałe, więc nie ma sensu umieszczać go w ~ / .profile i nie ma potrzeby ponownego uruchamiania. To szczególne ustawienie dotyczy tylko Gnome / Unity, a nie KDE używanego w Kubuntu.
Anton Eliasson,
4

To łatwe zadanie, gdy wiesz, jak to zrobić.

1) Sprawdź kod swojego klucza. Uruchom ten program na terminalu.

Xev


W tym przykładzie terminal pokazuje, że kluczem dla mojego kjest „45”.

2) Zmień je tak, jak chcesz utworzyć ten plik:

gedit ~ / .Xmodmap

Jego zawartość powinna wyglądać następująco:

keycode 37 = Caps_Lock NoSymbol Caps_Lock
keycode 66 = Control_L NoSymbol Control_L

(W razie potrzeby zmień numer kodu klucza - spójrz na krok „1”)

Ilustracja:
(Obs .: jeśli chcę zmienić swój kkod, powinienem użyć kodu „keycode 45”, jak pokazano w kroku „1”).

4) Wyloguj się i zaloguj ponownie lub uruchom ponownie lub uruchom to:

xmodmap ~ / .Xmodmap

Mam nadzieję, że ci się podoba ;-)

desgua
źródło
2
Zauważ, że to rozwiązanie może powodować problemy w przypadku niczego poza najprostszymi mapami klawiszy. Kompatybilność z xmodmap w nowszym systemie xkb nie jest doskonała, więc prawdopodobnie lepiej jest trzymać się xkb, jeśli to możliwe.
James Henstridge
@James chciałbyś wyjaśnić, jak możemy to zrobić?
desgua
Zobacz drugą odpowiedź na to pytanie. Standardowy panel sterowania klawiatury zbuduje mapę klawiszy xkb na podstawie wybranego układu podstawowego oraz włączonych opcji.
James Henstridge
1
Cóż, możesz skonfigurować te same mapy klawiszy za pomocą setxkbmapprogramu wiersza poleceń . Pisanie nowych map klawiszy jest możliwe, ale nieco bardziej zaangażowane niż mapowania kodów klawiszy Xmodmap. Dobrze, że większość żądanych wariantów opcji jest już dostępna.
James Henstridge
1
@James. Szukałem i uczę się o setxkbmap. Ale nie mogłem znaleźć odpowiedzi na pytanie: czy możliwe jest ponowne przypisanie klucza do czegokolwiek, czego chcemy? Na przykład coś ekscentrycznego: „kod klucza 51 = wspornik braceright wspornik braceright męski pasek”?
desgua
4

Oto jak to zrobić ręcznie (bez dodatkowych narzędzi), za pośrednictwem XKB, który jest domyślnym menedżerem kluczy dla ostatniego Ubuntusa. Zmień /usr/share/X11/xkb/symbols/pc, sekcja xkb_symbols "pc105":

//key <CAPS> {  [ Caps_Lock     ]   };
//key <LCTL> {  [ Control_L     ]   };
key <CAPS> {    [ Control_L ]   };
key <LCTL> {    [ Caps_Lock     ]   };

Zaloguj się / wyloguj lub uruchom ponownie. Zobacz tutaj po więcej szczegółów.

Alternatywnie możesz zamienić na poziomie kodów, które są emitowane przez te przyciski. Modify /usr/share/X11/xkb/keycodes/evdev:

<CAPS> = 64; //66;
<LCTL> = 66; //64

Musisz sudo rm -rf /var/lib/xkb/*zastosować zmiany.

Alex Fedulov
źródło
Świetna uwaga na temat pracy na poziomie kodów. Na moich laptopach z Kubuntu Bionic, sama zmiana na poziomie symboli nie jest satysfakcjonująca, ponieważ naciśnięcie fizycznego klawisza Caps nadal przełącza wewnętrzny stan Caps. Zmiana kodów dostępu działa! BTW Rozszerzyłem to do trzech klawiszy (Caps, Meta i RAlt) i chciałbym zauważyć, że tak naprawdę trzeba pisać, <CAPS> = *orig code of the physical key you want to act **as** CAPS*a nie <CAPS> = *orig code of the key you want physical CAPS to act **as**(mam nadzieję, że rozróżnienie jest jasne). To rozróżnienie jest potrzebne w takich przypadkach.
jamadagni
3

Przyjęta odpowiedź jest myląca, ponieważ gnome-tweak-tools nie pokazuje żadnej sekcji „pisania”.

Zamiast tego kliknij sekcję „Klawiatura i mysz”, a następnie wybierz opcję „Dodatkowy układ”. Tam zobaczysz „Zachowanie Caps Lock”, które pozwala na konwersję Caps Lock na różne klawisze.

Zrzut ekranu z narzędzia do ulepszania

zerotimer
źródło
2

W przypadku dystrybucji opartych na KDE (takich jak KDE Neon lub Kubuntu) to zachowanie można skonfigurować w zwykłych ustawieniach systemu. Otwórz ustawienia systemowe, wybierz „Urządzenia wejściowe” => „Klawiatura” => „Zaawansowane”. W kategorii „Klawisz Ctrl” wybierz „Zamień Ctrl i Caps Lock”.

Zrzut ekranu modułu klawiatury System Setting

Gerald Senarclens de Grancy
źródło
0

gnome-tweaks 3.28.1 nie ma Typingsekcji.
Tak więc, setxkbmap -layout us -option ctrl:nocapsczy setxkbmap -layout us -option ctrl:swapcapsbyłoby to wykonalne opcje.

Aby to zrobić na stałe, możesz odnieść się do odpowiedzi @name.

David Jung
źródło
Klawiatura i mysz -> dodatkowa opcja układu
Voyager