Como mapear a tecla Caps Lock para a tecla Escape no Arch Linux

23

Meu sistema operacional é o Arch Linux amd64, Gnome ENV.

Quero mapear a Caps Lockchave para Esc(escape) no Arch Linux. Eu executo o comando:

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

Funciona bem, mas um momento depois, a tecla Caps Lock funciona novamente. E devo executar o comando novamente.

Tenho certeza de que essa solução funcionou bem, talvez um ano atrás. Qual é o meu problema? Alguém pode me ajudar a mapear a tecla Caps Lock para a tecla Escape para sempre no meu sistema operacional Arch Linux?

G-Man Diz 'Reinstate Monica'
fonte

Respostas:

47

Qualquer um dos seguintes (em ordem crescente de complexidade):

  1. Use setxkbmappara remapear a chave (não requer um daemon e é independente do ambiente da área de trabalho ou do gerenciador de janelas). Não se esqueça de adicionar o comando antes da linha exec gnome-session(ou similar) no seu ~/.xinitrcou ~/.xsession:

    setxkbmap -option caps:escape
    

setxkbmappode ser encontrado no pacote extra / xorg-setxkbmap .

  1. dconf-editororg.gnome.desktop.input-sources.xkb-options→ Adicionar caps:escapeao campo acima mencionado.
  2. gnome-session-settings → Programas de inicialização → Adicionar → Nome = Remapear caps lock para escapar, comando =setxkbmap -option caps:escape
  3. Criar um layout de teclado personalizado

Para sua informação, eu obtive a regra XKB pelo grep ping /usr/share/X11/xkb/rulespara capse esc.

pilona
fonte
2
O método dconf funcionou perfeitamente para mim, obrigado!
Keith Smiley
Obrigado por não. 2. Eu procurava essas informações há muito tempo. Não posso definir isso na linha de comando viagsettings org.gnome.desktop.input-sources xkb-options ['caps:none', 'numpad:pc', 'numpad:mac']
Oliver Jan Krylow
Em relação ao no. 1: Se você deseja trocá-lo em vez de ter duas chaves de escape, pode executar setxkbmap -option caps:swapescape.
comfreak 31/07
5

Para uso X, a página do Arch Wiki Gnome possui instruções para modificar o teclado com o XkbOptions :

Usando o dconf-editor, navegue até a chave chamada org.gnome.desktop.input-sources.xkb-options e adicione XkbOptions desejado (por exemplo, 'caps: swapescape') à lista.

No console, você pode criar um mapa de teclas personalizado para o mesmo efeito. Criar seu mapa de teclado pessoal com as mudanças necessárias para CapsLocke Escapeem /usr/share/kbd/keymaps/i386/qwerty/yourmapseguida, tar-lo e incluir uma linha em /etc/vconsole.confchamá-lo:

KEYMAP=yourmap

fonte
3

Xorg.conf

Você pode conseguir isso editando o arquivo /etc/X11/xorg.conf.d/00-keyboard.conf.

Arquivo de exemplo:

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

Você pode especificar várias XkbOptions, por exemplo, caps:swapcaps,terminate:ctrl_alt_bksppara ter esc e caps trocados, mas também permitir que o X seja eliminado CtrlAlt Backspace. Você pode encontrar mais informações sobre isso em man xkeyboard-config.

GUI

Você também pode usar a ferramenta GNOME Tweak Tool (pacote gnome-tweak-tool). Basta clicar Typinge depois escolher o que quiser no Ctrl positionmenu (veja a imagem abaixo).

insira a descrição da imagem aqui

isopor mosca
fonte
2

Você pode usar o xmodmap. Coloque o seu ~/.Xmodmap:

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

(certifique-se de que, ao iniciar o X, use o seu ~/.Xmodmap)

uzsolt
fonte
Essa é a resposta correta, independente da distribuição agnóstica e da área de trabalho.
dotancohen
Quando eu colocar isso em ~/.Xmodmap, nada acontece :(
Jan Warchoł
Coloque linha xmodmap ~/.Xmodmappara o seu ~/.xinitrc!
Uzsolt 21/11/2015
Quando coloco isso ~/.Xmodmape executo xmodmap ~/.Xmodmap, recebo erros: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
Você precisará de espaços em torno do sinal de igual. Eu modifiquei a resposta.
uzsolt 31/07
0

! Não sei por que as respostas acima não funcionam. Aqui está um trabalho para mim. No seu ~ / .Xmodmap

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

e depois

$ xmodmap ~/.Xmodmap

Estou usando o Fedora e o gerenciador de janelas não-Gnome. HTH

John Chain
fonte
0

O arquivo /etc/X11/xorg.conf.d/00-keyboard.conftambém pode ser gerado automaticamente usando systemd-localed. Use o seguinte comando:

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

Ou, incluindo algumas outras opções úteis:

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

Explicações rápidas:

  • CapsLk funciona como Esc
  • Alterna entre dois layouts de teclado us/ decom Alt+CapsLk
  • O LED CapsLk indica qual layout está ativo
  • Alt direito ( RAlt) é o "multikey" (consulte Tecla de composição )
    • RAlt+ egera
    • RAlt+ 4gera (semelhante a como Shift+ 4gera $)
  • Ctrl+ Alt+ Backspacemata X
friederbluemle
fonte