Troque CapsLock e Controle usando o xmodmap (a solução man page não funciona)

1

Acabei de atualizar do Fedora 14 com o desktop Gnome para o Fedora 20 com Área de trabalho do mate. Em F14, eu anteriormente trocava o CapsLock por Control_Left, e Alt_Right com Control_Right. Isso eu fiz adicionando as seguintes linhas para / etc / X11 / xinit / xinitrc-common (desculpe o 'xmodmap em cada linha)

xmodmap -e 'clear lock'
xmodmap -e 'clear control'
xmodmap -e 'remove mod1 = Alt_R'
xmodmap -e 'add control = Caps_Lock Alt_R'
xmodmap -e 'add mod1 = Control_R'
xmodmap -e 'add lock = Control_L'

No F14, eles funcionam como esperado. No entanto, quando copio estes para / etc / X11 / xinitrc-common em F20, a troca de CapsLock Control_L não acontecer. Em vez disso, ambas as chaves se tornam CapsLock. A troca Alt_R / Control_R faz funcionar corretamente.

Em seguida, tentei a solução oferecida na página do manual xmodmap e também aqui: Remapear o Caps Lock com o xmodmap não funciona

xmodmap -e 'remove Lock = Caps_Lock'
xmodmap -e 'remove Control = Control_L'
xmodmap -e 'keysym Control_L = Caps_Lock'
xmodmap -e 'keysym Caps_Lock = Control_L'
xmodmap -e 'add Lock = Caps_Lock'
xmodmap -e 'add Control = Control_L'

Estranhamente, as teclas CapsLock e Control_L agora são ambas Control_L.

Fazer todos os swaps com mapeamentos de códigos de teclado funciona como um encanto:

xmodmap -e 'clear Lock'
xmodmap -e 'clear Control'
xmodmap -e 'remove Mod1 = Alt_R'
xmodmap -e 'keycode 66 = Control_L'
xmodmap -e 'keycode 37 = Caps_Lock'
xmodmap -e 'keycode 108 = Control_R'
xmodmap -e 'keycode 105 = Alt_R'
xmodmap -e 'add Lock = Caps_Lock'
xmodmap -e 'add Control = Control_L Control_R'
xmodmap -e 'add Mod1 = Alt_R'

Os códigos de teclas originais antes da troca são 66 = CapsLock, 37 = Control_L, 108 = Alt_R, 105 = Control_R.

Eu gostaria de entender por que os dois primeiros métodos não funcionariam. Qualquer idéias?

    
por user4025526 21.09.2014 / 10:21

1 resposta

0

Eu tive um problema semelhante quando tentei alternar a tecla de controle direita e a tecla de menu em um laptop (a Dell trocou sua posição física no teclado).

Por alguma razão, as teclas modificadoras precisam ter duas coisas para funcionar. Ele precisa saber que uma chave específica é Control_R e precisa saber que a chave em particular possui o modificador de controle anexado a ela.

Então eu tive que trocar os códigos de teclas, e depois remover separadamente a função de controle de uma chave e adicioná-la a outra. Eu só precisava fazer o primeiro passo quando experimentei trocar as teclas das letras.

Meu palpite é que as funções modificadoras são manipuladas de maneira diferente pelo sistema.

    
por 21.12.2014 / 22:04

Tags