como remapear Ctrl para Escape se pressionado e liberado por conta própria

4

Quero remapear o Controle para que:

  1. Se for pressionado e liberado sem outra chave, ele age como   Esc .
  2. Se estiver pressionado & amp; realizada em conjunto com outra chave, age como Ctrl (sem alteração de comportamento neste caso).

Estou ciente de Como faço o remapeamento de certas chaves ou dispositivos? , então eu suspeito que isso pode ser feito com o xmodmap. Mas essa resposta não explica como mapear as teclas modificadoras. Examinei os exemplos e as seções gramaticais da página do xmodmap, mas eles não explicam isso. A resposta em Remapeando Caps Lock para Controlar e Escapar (não da forma usual) mencionar que não é possível fazer isso para Caps Lock , já que é uma tecla de bloqueio, mas espero que isso seja possível com o controle que é uma tecla mod. Uma solução com algo diferente de xmodmap também será aceita. (Estou executando o Xmonad no Ubuntu 12.04, então talvez haja uma maneira de configurar isso em xmonad.hs?)

EDIT: O mais próximo que eu posso conseguir é:

xmodmap -e 'remove Control = Control_L'
xmodmap -e 'keysym Control_L = Escape'
xmodmap -e 'add Control = Escape'

Com isso eu recebo o Escape quando pressiono a tecla Ctrl da esquerda sozinha, mas para obter, digamos, Ctrl + A eu preciso pressione a tecla Ctrl esquerda duas vezes: Ctrl , Ctrl + A (em vez de apenas Ctrl + A ) - não tenho certeza porque preciso pressioná-lo duas vezes.

    
por psvm 22.11.2012 / 23:30

2 respostas

3

A última resposta a Remapping Caps Lock Controlar e Escapar (não da maneira usual) diz que este utilitário fará o que você quer: link

    
por ashleyh 04.12.2012 / 09:21
1

Isso pode ser feito com xmodmap , mas lembre-se de que, se tiver definido algumas coisas com setxkbmap , o último programa substituirá e limpará xmodmap configurações.

No entanto, para fazer exatamente o que você deseja com xmodmap , você pode inserir

xmodmap -e "keysym Control_L control = Escape Control_L" 

Agora, se você olhar para xmodmap -pm , Escape foi adicionado ao modificador de controle. Isto significa que quando o controle da esquerda é pressionado, o escape será o resultado, mas quando o controle é pressionado com outra tecla (como em Ctrl + C ), ele ainda dará o mesmo resultado de antes.

Teste-o entrando no terminal man xmodmap e depois pressione ctrl enquanto olha para a manpage e ele irá ecoar 'esc', mas quando você pressionar Ctrl + Z suspenderá a página.

Se você deseja redefinir suas experimentações com xmodmap , faça logout e login novamente e se quiser definir o comando xmodmap acima como um item de inicialização, veja minha resposta aqui:

por user76204 26.11.2012 / 19:07