Questão Como fazer meu Alt_R funcionar como outro controle no Linux


Eu quero usar o meu Alt direito como outra tecla de controle para usar com o Emacs.

Eu tentei seguir (com modificações) este tutorial: http://earthviaradio.wordpress.com/2012/02/06/swapping-the-left-alt-and-ctrl-keys-in-ubuntu-11-10/

Então agora eu tenho isso no meu arquivo .Xmodmap:

clear control
keycode 108 = Control_R
add control = Control_L Control_R

Depois que eu reinicio o X.org, ele não parece ter efeito sobre como as teclas se comportam. A chave 108 ainda funciona como Alt. Mas quando eu exploro isso com xev, Eu posso ver claramente minhas mudanças. Quando eu pressiono o Alt certo, eu entendo isso:

keycode 108 (keysym 0xffe4, Control_R)

Parece "saber" sobre minhas mudanças, mas não respeitá-las.


1


origem




Respostas:


OK, encontrei a resposta certa aqui https://askubuntu.com/questions/237564/remap-right-alt-to-behave-as-right-ctrl

Vou postar exatamente o que tenho no meu .Xmodmap agora, já que o que eu quero é um pouco diferente da questão vinculada. Eu não quero desvincular o Ctrl direito, apenas para adicionar outro (o Alt correto).

remove Mod1 = Alt_R
keycode 108 = Control_R
add Control = Control_R

Este é o impacto mínimo no teclado que eu posso pensar. O que ele faz é apenas desvincular Alt_R e vincular Control_R à mesma chave. Isso deve funcionar em qualquer linux, não apenas no Ubuntu, como a questão ligada. Eu testei no Ubuntu, Fedora e OpenSUSE.


1



Isso não funciona mais no Ubuntu 16.04. Uma solução relativamente fácil é modificar / usr / share / X11 / xkb / keycodes / evdev e alterar os códigos de chave para RALT e RCTL: <RCTL> = 108; <RALT> = 105; Esta provavelmente não é uma solução "correta", pois altera os arquivos do sistema que provavelmente serão sobrescritos nas atualizações de pacotes, etc. Ainda não foi encontrado um melhor. - loxs


Se você é uma das pessoas infelizes como eu que não conseguiu xmodmap para alternar Alt direita com Ctrl direita, então talvez isso ajude.

Se você pressionar Alt e e e e você chegarem, então esta solução é para você (precisa de melhorias).

Execute isso no terminal (verifique seus códigos de tecla com xev):

xmodmap -e "keycode 108 = Alt_R Meta_R Alt_R Meta_R"

em seguida, coloque este código no seu .Xmodmap:

remove Control = Control_R
remove Mod1 = Alt_R
keycode 105 = Alt_R
keycode 108 = Control_R
add Control = Control_R
add Mod1 = Alt_R

Este código define sua chave Alt_Gr para Alt_R e, em seguida, troca Alt_r com Ctrl_R.

Se você quiser que isso permaneça após o logout, coloque os seguintes comandos em qualquer um dos seus arquivos shell de inicialização, por exemplo, ~ / .profile:

if [ -f $HOME/.Xmodmap ]; then
  xmodmap -e "keycode 108 = Alt_R Meta_R Alt_R Meta_R"
  /usr/bin/xmodmap $HOME/.Xmodmap
fi

fontes: questão 1  Questão 2


1