Comprei um teclado simples esse ano, mas logo notei alguns diferenças da foto que tinha no site.
Não havia algumas teclas, como o Print screen e o F11. Testei combinações das teclas com Shift
, Ctrl
e AltGr
para ver o que acontecia e não encontrei o |
(pipe), por exemplo.
Algumas pesquisas na internet me retornaram a seguinte opção: setar o layout para o padrão ABNT2:
$ setxkbmap -model abnt2 -layout br
Ainda assim algumas coisas não funcionaram, mas pode ser que o comando funcione para você. Pois bem.
Para suprir minha necessidade do F11, fui em “Settings” no Ubuntu, depois em “Keyboard shortcuts” e procurei pelo fullscreen. Setei para Alt + Super + F
, no meu caso, sendo o super aquele símbolo do Windows. Após isso, procurei pelo print e setei para Alt + Super + P
. Pronto, parte do problema resolvido.
Para resolver o problema do pipe precisei pesquisar um pouco mais, já que não o encontrei ao testar algumas combinações. Foi aí que me deparei com perguntas e respostas sobre como remapear teclas, pois até então só tinha pesquisado na linha ”configurar teclado padrão americano” ou “meu teclado não tem tecla x”.
Ao pressionar uma tecla o sistema operacional irá identificar o código que foi disparado e vai interpretar esse código para devolver no output o esperado. Para entender quais códigos estão sendo disparados, digite o seguinte:
$ xev
O xev
é um comando que printa o conteúdo de eventos. Você pode ler mais sobre a documentação do xev
aqui.
Assim que você der um enter, o xev
irá abrir uma janelinha e ficar esperando as suas ações. Dei um print da tela com o já setado comando Alt + Super + P
, com a janelinha aberta, e o terminal me mostrou o seguinte:
Certo. Fiquei me perguntando onde poderia encontrar uma lista completa com essas keycode
que apareceram, então encontrei o seguinte comando:
$ xmodmap -pke
O xmodmap
é uma ferramenta para modificar o mapeamento de teclas e o comando acima indica que o atual layout de teclas deve ser printado na tela.
Testando os eventos com o xev
vi que AltGr + R
resultava em ®, símbolo de registered trademark, sendo o keycode = 27
. Esse símbolo não tem utilidade para mim, por isso o escolhi para substituir pelo pipe.
Cheguei a ver algumas teclas que começavam com “dead_” e fiquei curiosa para saber o que era. Se quiser ver uma tabela com esses codinomes e seus significados, dê uma olhada no The Gtk Dead Key Compose Table.
Comando para remapear teclas
Até aí eu havia disparado o evento para ver rapidamente o código e tinha verificado quais outros símbolos a tecla que eu queria mudar continha, mas ainda precisava do comando para modificar a tecla. Então encontrei um exemplo de comando:
$ xmodmap -e "keycode 94 = backslash bar backslash bar masculine"
Esse comando está modificando o keycode = 94
, onde temos barra invertida (backslash), pipe (bar) e o símbolo º (masculine). Eles estão em sequência devido ao Shift
, Ctrl
, AltGr
e por aí vai que podemos combinar para alcançar outras camadas além da tecla sozinha.
No meu caso, o keycode = 27
mostrava r R r R registered
. Para modificar a tecla que eu queria, bastou fazer o seguinte:
$ xmodmap -e "keycode 27 = r R r R bar"
Pronto, meu xmodmap -pke
ficou com essa configuração no keycode = 27
:
Fiz o teste com a tecla e estava funcionando corretamente.
Como persistir a configuração do teclado
A configuração de remapear as teclas não permanece na próxima sessão, o que significa que se você desligar o computador irá perder o remapeamento que fez.
Para persistir sua configuração você pode adicionar a linha de modificação no seu .bashrc
, porém, isso só terá efeito se você abrir o terminal primeiro sempre que ligar o computador. Se você quiser persistir o remapeamento da tecla automaticamente ao iniciar, faça o seguinte no seu terminal:
$ cd ../../
$ cd usr/bin/
$ sudo vim remap27.sh
Acabamos de criar um arquivo de shell, e no remap27.sh
você pode botar o nome que desejar. No vim
, adicione um tempo (contado em segundos) para a aplicação esperar ao ligar o computador e adicione o comando na primeira linha, depois salve e saia:
sleep 30 && xmodmap -e "keycode 27 = r R r R bar"
Como explicado nessa respostas do StackExchange, esses comandos de teclado necessitam que o desktop esteja totalmente carregado, e com frequência podem rodar muito cedo quando você estiver inicializando a máquina e quebrar. A não ser que você tenha um SSD.
De volta ao terminal, dê permissão para executar o script:
$ chmod +x remap27.sh
Agora os últimos passos:
- Abra o “Startup applications” do Ubuntu
- Clique em “Add”
- Dê um nome a configuração, como “Remap key [número da key que você mudou]”
- Na parte do “Command”, digite a localização do script do comando, no meu exemplo:
/usr/bin/remap27.sh
- Salve
- Fecha a janela e reinicie o computador
Pronto. Toda vez que você ligar seu pc ele irá inicializar automaticamente com essa configuração de teclado remapeado.
Fontes:
Viva o Linux
xev man page
xmodmap Ubuntu Manpage
Comunidade Hardware
StackExchange
Esse texto não tem intenção de esgotar o tema. Acrescente nos comentários, e também aponte erros quando os identificar.
所有评论(0)