Jak zmienić mapowanie klawisza Caps Lock?

68

W przeszłości używałem, aby xmodmapuniemożliwić działanie Caps Lockprzycisku, a następnie mówiłem Launchy, aby zamiast tego obsługiwał naciśnięcie klawisza. Nie mogę już tego robić.

Jaki jest najlepszy sposób, aby wyłączyć Caps Locknormalne zachowanie i zmusić go do zrobienia czegoś innego?

Mehrdad
źródło
W przypadku Ubuntu 14.04, patrz askubuntu.com/q/444714/25388
Léo Léopold Hertz 준영

Odpowiedzi:

70

Od howtogeek.com, która ma dobrą odpowiedź na każdy system operacyjny.

W przypadku systemu Linux (w tym Ubuntu):

setxkbmap -option <OPTION>

Gdzie <OPTION>może być na przykład:

  • caps:none - Wyłącza Caps Lock.
  • caps:super- Caps Lock staje się dodatkowym Super (aka Win).
  • caps:ctrl_modifier- Caps Lock staje się dodatkowym klawiszem Ctrl .
  • caps:numlock- Caps Lock staje się dodatkowym Num Numerem .
  • caps:escape- Caps Lock staje się dodatkową ucieczką .
  • caps:backspace- Caps Lock staje się dodatkowym Backspace .
  • caps:swapescape - Caps Lock zmienia się w Escape, a Escape zmienia się w Caps Lock

Uwaga: Xmodmap jest przestarzałe na korzyść setxkbmap.

Wernight
źródło
2
kocham cię, dzięki, to działa na ubutnu 14.10
Andrzej Rehmann
1
działa również w Ubuntu 15.10! dzięki!
donatello,
5
ładny i prosty, działa w 16.04
chepyle
3
Aby przywrócić wszelkie setxkbmapzmiany (tj. Jeśli potrzebujesz klucza Caps z powrotem do pierwotnej lokalizacji), wystarczy uruchomić to:setxkbmap -option
landroni
Jeśli zmieniłeś klawisz Capslock na backspace, a teraz zastanawiasz się, dlaczego nie usunie słów, jeśli go przytrzymasz, to dlatego, że musisz użyć dodatkowego polecenia. Po setxkbmap -option caps:backspacewejściu xset r 66i voilá.
Gabriel
19

W Ubuntu 11.10 - 13.04

  1. Otwórz aplikację Układ klawiatury i kliknij przycisk „Opcje”.
  2. Pojawi się lista opcji ponownego wiązania. Wybierz „Zachowanie klawisza Caps Lock”.
  3. Wybierz preferowaną opcję zmiany przeznaczenia Caps Lock.

Zrzut ekranu dostępnych opcji

Jjed
źródło
1
@JacobJohanEdwards Uwaga do siebie, sprawdź, czy xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'nadal działa.
Jjed
Dla użytkowników vima, „Practical Vim” zaleca mapowanie Caps Lock na ctrl na poziomie systemu. Układ klawiatury> Opcje> Pozycja klawiszy Ctrl> Caps Lock, gdy Ctrl załatwia sprawę.
rpattabi
11
Te ustawienia już nie istnieją w 13.10. Zainstaluj gnome-tweak-tool, tam będziesz mieć podobne ustawienia w „Pisanie”.
pcworld,
To nie działa dla mnie w Ubuntu 12.10. Bałagan z tymi ustawieniami w centrum kontroli gnome nie wydaje się mieć żadnego efektu.
Andrew Wagner
4
Dlaczego usunęli te opcje z 14.04?
Léo Léopold Hertz -
18

Możesz go wyłączyć, przechodząc do klawiatury-> Układy-> opcje-> zachowanie Caps Lock i wybierz „wyłącz Caps Lock”.


Edytuj :

Nie wiem, dlaczego wydaje się niewygodny z innymi klawiszami klawiatury.

Ale Launchy działa dobrze ze mną po wypróbowaniu go z CTRL+ Super+ Space.

wprowadź opis zdjęcia tutaj

I musisz dodać białą listę launchydo ikon w zasobniku. Zobacz Jak uzyskać dostęp i włączyć więcej ikon na pasku zadań? . Musisz także dodać go do aplikacji startowych, ponieważ nie będzie działać, gdy nie zostanie otwarty.


W końcu Jako alternatywę dla Launcy wypróbuj Synapse, aby uzyskać najlepszą integrację z gnomem i jednością.

Życie binarne
źródło
Ta opcja nie wydaje mi się dostępna w systemie Ubuntu 15.04.
MichielB,
15

Jest to w zasadzie modyfikacja odpowiedzi podanej na stronie https://askubuntu.com/a/223674/22073 .

Możesz także zmodyfikować zachowanie Caps Lock za pomocą XKBOption. Zmiany te są nawet proponowane w konsolach wirtualnych (/ dev / tty [1-6] lub Ctrl-Alt-F [1-6]).

Na przykład, aby wyłączyć Caps Lock, będziesz mieć następujące opcje /etc/default/keyboard:

# Check /usr/share/doc/keyboard-configuration/README.Debian for
# documentation on what to do after having modified this file.

# The following variables describe your keyboard and can have the same
# values as the XkbModel, XkbLayout, XkbVariant and XkbOptions options
# in /etc/X11/xorg.conf.

XKBMODEL="pc105"
XKBLAYOUT="us"
XKBVARIANT=""
XKBOPTIONS="caps:none"

# If you don't want to use the XKB layout on the console, you can
# specify an alternative keymap.  Make sure it will be accessible
# before /usr is mounted.
# KMAP=/etc/console-setup/defkeymap.kmap.gz

Wtedy biegniesz:

sudo dpkg-reconfigure keyboard-configuration

Pełna lista dostosowań XKBOPTIONS znajduje się w /usr/share/X11/xkb/rules/base.lst. Oto pełna lista z mojego komputera z Ubuntu 13.10: http://sprunge.us/cUZO

Jeszcze więcej informacji można znaleźć na wiki ArchLinux: https://wiki.archlinux.org/index.php/Keyboard_Configuration_in_Xorg

Ehtesh Choudhury
źródło
Idealnie, używam XKBOPTIONS="ctrl:swapcaps"do zamiany lewego klawisza Ctrl na Caps.
Márcio,
Działa 16.04 w X i konsolach wirtualnych.
jfs
10

Aby zmienić mapowanie bezużytecznego caps_locka w podstawową zmianę, wykonaj

xmodmap -e "keycode 66 = Shift_L"
JobWat
źródło
Nie utrzymuje się to po ponownym uruchomieniu.
Czarek Tomczak
3
Aby zachować to po ponownym uruchomieniu, wykonaj następujące czynności: Ubuntu Dash Home> Aplikacje startowe> Dodaj> Wpisz powyższe polecenie.
Czarek Tomczak
6

Poniższa metoda wykorzystuje kombinację Compiz do uruchomienia aplikacji po naciśnięciu klawisza.

W podsumowaniu -

  1. zmień zachowanie klawisza Caps Lock, aby naśladować inny klawisz.
  2. Skonfiguruj compiz, aby nasłuchiwał na nowo naśladujący klucz i uruchom niestandardowy skrypt.

Zmień klawisz Caps Lock

Aby zmienić zachowanie klawisza Caps Lock, możesz użyć xmodmapw następujący sposób:

  • utwórz plik, np. „capslock”
  • skopiuj i wklej następujące elementy do pliku
keycode 66 = cent
clear Lock
add Control = cent
  • teraz uruchom xmodmap, aby rozpoznać zmianę:

xmodmap capslock

Aby uruchomić na stałe, dodaj to polecenie do aplikacji startowych.

Naciśnięcie klawisza Caps Lock naśladuje teraz naciśnięcie klawisza „cent” - pamiętaj, że nie jest to klawisz, który faktycznie istnieje na mojej klawiaturze.

Możesz uzyskać listę nazw KeySym stąd .

Skonfiguruj Compiz

Uruchom Menedżera ustawień CompizConfig

W sekcji ogólnej upewnij się, że „Polecenia” są włączone i skonfiguruj polecenie, jak pokazano:

wprowadź opis zdjęcia tutaj

Uwaga: włącz powiązanie klawiszy i użyj „złap kombinację klawiszy”, aby rozpoznać swój klucz „cent”. Niestety, nie można uzyskać compiz, aby rozpoznał sam klawisz Cap Lock.

wprowadź opis zdjęcia tutaj

Oczywiście - zmień „firefox” na dowolne polecenie, którego używasz, aby uruchomić „launchy”

Teraz, gdy naciśniesz klawisz Caps Lock, compiz rozpozna zamapowany klawisz „cent” i uruchomi polecenie - w tym przypadku firefox - w twoim przypadku „launchy”.

fossfreedom
źródło
Po kilku minutach ustawienia wracają - i znów Caps Lock zachowuje się normalnie.
Witalij Zdanevich
5
  1. Użyj polecenia xev. Gdy naciśniesz Enter, uruchomi się xev. xev pobiera wszystkie dane wejściowe i zapisuje informacje o kluczu w wierszu polecenia. Polecam najechanie myszką na klawisz wyjścia okna xev, naciśnięcie klawisza Caps Lock (lub dowolnego innego klawisza, o którym chcesz się dowiedzieć) i natychmiastowe wyjście z Xev. Odpowiednie linie w moim systemie, dla Caps Lock, wyglądają mniej więcej tak:

    KeyPress event, serial 36, synthetic NO, window 0x4400001,
        root 0x27a, subw 0x0, time 19164277, (16,-9), root:(1156,46),
        state 0x2, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
        XLookupString gives 0 bytes: 
        XmbLookupString gives 0 bytes: 
        XFilterEvent returns: False
    
    KeyRelease event, serial 36, synthetic NO, window 0x4400001,
        root 0x27a, subw 0x0, time 19164397, (16,-9), root:(1156,46),
        state 0x2, keycode 66 (keysym 0xffe5, Caps_Lock), same_screen YES,
        XLookupString gives 0 bytes: 
        XFilterEvent returns: False
    

    Uwaga keycode(66) i keysym(0xffe5).

    Teraz możesz również uzyskać dane dla innego klucza - takiego, którego tak naprawdę nie używasz, a który w kontekście, w którym chcesz użyć przycisku Caps Lock, nic nie robi. Jeśli więc chcesz, aby Caps Lock aktywował pole wyszukiwania Unity (jak zwykle robi to super), może na przykład użyj `. Na mojej maszynie:

    keycode 49 (keysym 0x60, grave)
    
  2. Powiąż funkcję nowego klawisza z przyciskiem Caps Lock, używając xmodmap. Jestem pewien, że chcesz użyć polecenia takiego jak:

    xmodmap -e "keycode 66=0x60"
    

    Teraz, jeśli naciśniesz fizyczny przycisk blokady wielkich liter w polu tekstowym, pojawi się poważny znak (`). Ale jeśli przypiszesz do niego klawisz skrótu, zrobi to coś innego. Jeśli chcesz móc używać go w polu tekstowym, być może zamień Caps Lock na lewy Shift, F10 lub coś innego, co nie wydaje się, że będzie kolidować z poleceniem, którego chcesz użyć.

  3. Przetestuj go, aby upewnić się, że polecenie, które ci dałem, działa tak, jak chcesz.

  4. Przejdź do aplikacji startowych i dodaj to polecenie do aplikacji startowych. W ten sposób klucz będzie się przełączał poprawnie przy każdym uruchomieniu.

  5. Taniec.

(krzyczy do firmy) Zmień skróty klawiszowe (sprzęt na oprogramowanie)

Ponadto, aby uzyskać więcej pomocy na temat xmodmap:

http://www.xfree86.org/4.2.0/xmodmap.1.html

http://www.in-ulm.de/~mascheck/X11/xmodmap.html

Daniel
źródło
4

Ubuntu 16.04

setxkbmap -option <OPTION> odpowiedź Wernighta zdawała się działać dla mnie natychmiast.

Jednak zrezygnowałby przy ponownym uruchomieniu. Aby rozwiązać ten problem, dodałem do moich aplikacji startowych

  1. Wyszukaj i uruchom Startup Applications>> Kliknij Dodaj
  2. Wprowadź /usr/bin/setxkbmap -option <OPTION>jako polecenie (uwaga: ważna jest pełna ścieżka)

Zamień na <OPTION>coś takiego caps:escape(używam go do vi)

tło

Właśnie uaktualniłem z 15.10 do 16.04 i cokolwiek użyłem do mapowania tego, zanim przestałem działać.

Anthony Astige
źródło
2

Opcja, którą znalazłem dla siebie najlepszą (w dowolnym wm / de kompatybilnym z X, to dodawanie)

Option "XkbOptions" "caps:swapescape"

w środku

Section "InputClass"
    Identifier "system-keyboard"
    MatchIsKeyboard "on"
    Option "XkbLayout" "US"
    Option "XkbOptions" "caps:swapescape" # << is what you want
EndSection

blokuj w /etc/X11/xorg.conf.d/00-keyboard.conf (utwórz, jeśli to konieczne).

Roman Riesen
źródło
1

chociaż oczywiście działałaby opcja xmodmap, chciałem znaleźć opcję korzystającą z GUI. Jest to dla mnie dostępne (przy użyciu Ubuntu 15.10):

  • zainstaluj gnome-tweak-tool
  • idź do „typ”
  • w „Zachowanie klawisza Caps Lock” wybierz „Caps Lock jest wyłączony”
MichielB
źródło
-1

Najbardziej niezawodnym rozwiązaniem jest zakup klawiatury, która umożliwia mapowanie klawiszy w oprogramowaniu układowym, tj. Profesjonalnej, programowalnej klawiatury.

Te zazwyczaj kosztują około 200 dolców, a także mają wysokiej jakości mechaniczne przełączniki kluczy. Są drogie, ale są jedynym sposobem na uniknięcie walki z tym na każdej nowej maszynie, na której siedzisz, i za każdym razem, gdy programiści dokonują przełomowych zmian w infrastrukturze systemu operacyjnego tak fundamentalnych jak mapa klawiatury.

Andrew Wagner
źródło
To nie pomaga z laptopem.
wallyk