Remaping Ctrl + Capslock e Alt + Capslock no Ubuntu

6

Estou tentando desativar o Capslock e fazer os seguintes remapeamentos:

Ctrl+Capslock => Capslock
Alt+Capslock => Escape (since my Escape key is broken)

Neste momento, estou tentando usar o Xmodmap.

Eu tenho apenas o seguinte:

keycode 66 = NoSymbol Caps_Lock

Isso desativa o Capslock e mapeia Shift + Capslock para Capslock, mas o que eu quero é Ctrl + Capslock em vez de Shift + Capslock.

Não tenho ideia de como mapear Alt + Capslock para a tecla Escape.

Quero esclarecer que não preciso de uma resposta para usar o Xmodmap, qualquer método será bom.

    
por qtwtetrt 06.07.2012 / 16:25

1 resposta

2

O Xmodmap não pode fazer o que você está pedindo, mas pode aproximá-lo.

A sintaxe básica para modificar o comportamento de uma chave é

xmodmap -e "keycode  KEYCODE = KEYSYMBOL1 KEYSYMBOL1 KEYSYMBOL3 KEYSYMBOL4"
xmodmap -e "keysym KEYSYMBOL = KEYSYMBOL1 KEYSYMBOL1 KEYSYMBOL3 KEYSYMBOL4"

onde

  • KEYSYMBOL2 é acionado ao pressionar a tecla enquanto pressiona Shift .
  • KEYSYMBOL3 é acionado ao pressionar a tecla enquanto pressiona ModeSwitch .
  • KEYSYMBOL4 é acionado ao pressionar a tecla enquanto pressiona Shift + ModeSwitch .
  • KEYSYMBOL1 é acionado ao pressionar a tecla sem nenhuma das opções acima.
  • ModeSwitch é AltGr por padrão (funciona apenas em alguns layouts de teclado).

Não podemos definir Ctrl ou Alt como a tecla ModeSwitch , já que nenhuma tecla pode servir como dois modificadores diferentes.

No entanto, nós podemos transformar CapsLock na tecla ModeSwitch :

xmodmap -e "keysym Caps_Lock = Mode_switch Mode_switch"

Para remapear CapsLock + Ctrl para a tecla CapsLock , execute os seguintes comandos.

xmodmap -e "keysym Control_L = Control_L Control_L Caps_Lock"
xmodmap -e "keysym Control_R = Control_R Control_R Caps_Lock"

Note que o CapsLock é a tecla modificadora aqui, então você tem que pressionar esta tecla primeiro.

Nós não podemos remapear CapsLock + Alt ou CapsLock + Super para Escape da mesma maneira, já que Alt e Super servem funções diferentes quando pressionados sozinhos e quando usados como teclas modificadoras.

Todas as outras chaves funcionarão bem. Exemplos:

  • Para CapsLock + ' (layout padrão dos EUA), use

    xmodmap -e "keysym grave = grave asciitilde Escape"
    
  • Para CapsLock + Espaço , use

    xmodmap -e "keysym space = KP_Space KP_Space Escape"
    

Dicas:

  • Para tornar os remapeamentos permanentes, crie / edite o arquivo .gnomerc em sua pasta pessoal e salve os comandos correspondentes nele.

  • Para desfazer todos os remapeamentos, basta executar

    setxkbmap
    
por 05.08.2012 / 02:39