Como mapear uma chave para outra no meu teclado?

7

Meu botão de barra de espaço não está mais funcionando, então eu quero mudar o comportamento dele para outra tecla para simular a pressão do botão de espaço, então como mapear o botão de espaço para a tecla direita alt / windows ???

    
por Black Block 02.05.2012 / 17:37

1 resposta

8

Para fazer grandes alterações em seu teclado, incluindo remapeamento de caracteres e alteração de modificadores, você precisa usar o utilitário xmodmap - consulte man xmodmap . Existem algumas maneiras de executar as alterações:

  • na linha de comando

    xmodmap -e "your commands"
    
  • ou escreva os comandos em um arquivo como .xmodmaprc, depois execute-o em seus itens de login ou no seu .bashrc com

    xmodmap .xmodmaprc
    

    Se você usar o arquivo ~ / .xmodmap, ele será executado automaticamente no login.

Alt e Super (a tecla do Windows) são modificadores e se comportam especialmente para o sistema. As chaves precisarão ser desmapeadas de seu modificador antes que você possa remapear qualquer outra coisa. A barra de espaço é considerada uma chave normal.

Desmapeando o modificador

Abra uma janela de terminal ( Ctrl-Alt-T , se você não estiver familiarizado com isso).

Execute o comando xmodmap -pm para obter uma lista das teclas modificadoras em seu sistema. Na saída, a coluna mais à esquerda é a lista de modificadores disponíveis para o sistema. As outras colunas listam as chaves associadas a esses modificadores como pares por keysym (keycode) . Por exemplo, uma linha da minha saída é

mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)

Os códigos de tecla correspondem a chaves físicas e podem (hipoteticamente) diferir entre teclados. O keysym é o 'nome' de uma chave. Se a chave for um caractere imprimível, o nome corresponde ao caractere impresso.

Agora você tem o que precisa para remover o mapeamento de uma chave do seu modificador correspondente. Eu vou fingir que estamos trabalhando com Alt_R.

Execute o comando xmodmap (por um dos métodos acima no topo)

remove mod1 = Alt_R

Remapear a barra de espaço

Em seguida, precisamos saber o que é a barra de espaço. Execute xmodmap -pke na sua janela de terminal. Isso imprimirá o que cada tecla do seu teclado está mapeada. Em algum lugar em que quatro ou cinco telas cheias é uma referência para a barra de espaço. Precisamos do nome dele para mapear uma chave para ele.

Alerta de spoiler: a barra de espaço tem o nome space

Ainda temos uma chave chamada Alt_R, mas não faz nada. Podemos usar seu nome para remapear para a barra de espaço. Execute este comando xmodmap:

keysym Alt_R = space

Isso pode acontecer enquanto você testa isso e já alterou o nome do Alt_R. Talvez você tenha acidentalmente remapeado para a letra 'a'. Você não quer remapear 'a' para outra coisa, porque você ainda precisa de uma das chaves com esse nome. Se você acabar nessa situação, ainda poderá se referir a Alt_R por seu código de acesso. Lembre-se que no meu teclado isso é 0x6c. Pode ser diferente para você. Você pode usar este comando xmodmap para alterá-lo:

keycode 0x6c = space

Boa sorte!

    
por pconley 16.05.2012 / 09:22