Jak zamapować klawisz Caps Lock na klawisz Escape w Arch Linux

23

Mój system operacyjny to Arch Linux amd64, Gnome ENV.

Chcę zamapować Caps Lockklucz na Esc(Escape) w Arch Linux. Wykonuję polecenie:

xmodmap -e 'clear Lock' -e 'keycode 0x42 = Escape'

Działa dobrze, ale chwilę później klawisz Caps Lock znów działa. I muszę ponownie uruchomić polecenie.

Jestem pewien, że to rozwiązanie zadziałało może rok temu. Jaki jest mój problem Czy ktoś może mi pomóc w mapowaniu klawisza Caps Lock na klawisz Escape na zawsze w moim systemie operacyjnym Arch Linux?

G-Man mówi „Przywróć Monikę”
źródło

Odpowiedzi:

47

Dowolny z poniższych (w kolejności rosnącej złożoności):

  1. Służy setxkbmapdo ponownego mapowania klucza (nie wymaga demona i jest niezależny od środowiska pulpitu lub menedżera okien). Nie zapomnij dodać polecenia przed exec gnome-sessionwierszem (lub podobnym) w swoim ~/.xinitrclub ~/.xsession:

    setxkbmap -option caps:escape
    

setxkbmapmożna znaleźć w pakiecie extra / xorg-setxkbmap .

  1. dconf-editororg.gnome.desktop.input-sources.xkb-options→ Dodaj caps:escapedo wyżej wymienionego pola.
  2. gnome-session-settings → Programy startowe → Dodaj → Nazwa = Ponowne mapowanie Caps Lock, aby wyjść, Command =setxkbmap -option caps:escape
  3. Utwórz niestandardowy układ klawiatury

Do twojej wiadomości, otrzymałem regułę XKB przez grep ping /usr/share/X11/xkb/rulesdla capsi esc.

pilona
źródło
2
Dzięki temu metoda dconf działała dla mnie idealnie!
Keith Smiley
Dzięki za nie 2. Szukałem tych informacji od wieków. Nie, nie mogę tego ustawić w wierszu poleceń za pośrednictwemgsettings org.gnome.desktop.input-sources xkb-options ['caps:none', 'numpad:pc', 'numpad:mac']
Oliver Jan Krylow,
W odniesieniu do nie 1: Jeśli chcesz zamienić go zamiast mieć dwa klawisze Escape, możesz uruchomić setxkbmap -option caps:swapescape.
comfreak
5

Do użytku na Xstronie Arch Wiki Gnome zawiera instrukcje modyfikowania klawiatury za pomocą XkbOptions :

Za pomocą edytora dconf przejdź do klucza o nazwie org.gnome.desktop.input-sources.xkb-options i dodaj do listy żądane XkbOptions (np. „Caps: swapescape”).

W konsoli możesz utworzyć niestandardową mapę klawiszy dla tego samego efektu. Tworzenie osobistej mapy klawiszy z wymaganych zmian dla CapsLocki Escapena /usr/share/kbd/keymaps/i386/qwerty/yourmapczym tarto i obejmuje linię /etc/vconsole.confnazwać:

KEYMAP=yourmap

źródło
3

Xorg.conf

Możesz to osiągnąć, edytując plik /etc/X11/xorg.conf.d/00-keyboard.conf.

Przykładowy plik:

Section "InputClass"
        Identifier      "system-keyboard"
        MatchIsKeyboard     "on"
        Option          "XkbLayout" "us"
        Option          "XkbModel"  "pc104"
        Option          "XkbOptions" "caps:swapescape"
EndSection  

Można określić wiele XkbOptions, na przykład caps:swapcaps,terminate:ctrl_alt_bkspza posiadanie esc i czapki zamienione ale również pozwalając X zostać zabity CtrlAlt Backspace. Możesz znaleźć więcej informacji na ten temat w man xkeyboard-config.

GUI

Możesz także użyć narzędzia GNOME Tweak Tool (pakiet gnome-tweak-tool). Po prostu kliknij, Typinga następnie wybierz z Ctrl positionmenu cokolwiek chcesz (patrz obrazek poniżej).

wprowadź opis zdjęcia tutaj

mucha styropianowa
źródło
2

Możesz użyć xmodmap. Wpisz ~/.Xmodmap:

remove Lock = Caps_Lock
keysym Escape = Caps_Lock
keysym Caps_Lock = Escape
add Lock = Caps_Lock

(upewnij się, że na początku X użyje twojego ~/.Xmodmap)

uzsolt
źródło
To jest poprawna, distro-agnostyczna i stacjonarna odpowiedź.
dotancohen,
Po włożeniu tego ~/.Xmodmapnic się nie dzieje :(
Jan Warchoł,
Ustaw linię xmodmap ~/.Xmodmapna swoim ~/.xinitrc!
uzsolt
Kiedy wkładam to, ~/.Xmodmapa potem uruchamiam xmodmap ~/.Xmodmap, dostaję błędy:xmodmap: .Xmodmap:1: bad remove modifier name 'lock=caps_lock', not allowed xmodmap: .Xmodmap:2: bad keysym target key symbol 'Escape=Caps_Lock' xmodmap: .Xmodmap:3: bad keysym target key symbol 'Caps_Lock=Escape' xmodmap: .Xmodmap:4: bad add modifier name 'lock=caps_lock', not allowed xmodmap: 4 errors encountered, aborting
comfreak
Będziesz potrzebował spacji wokół znaku równości. Zmodyfikowałem odpowiedź.
uzsolt
0

! Nie wiem, dlaczego powyższe odpowiedzi nie działają. Oto działający dla mnie. W twojej ~ / .Xmodmap

! 66 is the keycode of Caps_Lock
clear    Lock
keycode  66 = Escape 

i wtedy

$ xmodmap ~/.Xmodmap

Używam Fedory i menedżera okien innego niż Gnome. HTH

John Chain
źródło
0

Plik /etc/X11/xorg.conf.d/00-keyboard.confmożna również wygenerować automatycznie za pomocą systemd-localed. Użyj następującego polecenia:

localectl set-x11-keymap us "" "" caps:escape

Lub, w tym kilka innych przydatnych opcji:

localectl set-x11-keymap us,de "" "" caps:escape,grp:alt_caps_toggle,grp_led:caps,lv3:ralt_switch_multikey,terminate:ctrl_alt_bksp,eurosign:e,rupeesign:4

Szybkie wyjaśnienia:

  • CapsLk działa jak Esc
  • Przełącza między dwoma układami klawiatury us/ za depomocą Alt+CapsLk
  • Dioda LED CapsLk wskazuje, który układ jest aktywny
  • Prawa Alt ( RAlt) to „multikey” (patrz Compose Key )
    • RAlt+ egeneruje
    • RAlt+ 4generuje (podobnie jak Shift+ 4generuje $)
  • Ctrl+ Alt+ Backspacezabija X
friederbluemle
źródło