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?

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.


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

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


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)


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


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.