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.
Top comments (19)
O Tab do teclado do meu not estragou, estou usando o kali. Tentei fazer essa tecnica para colocar o Tab no CapsLock que não uso mas quando clico ele ativa os dois botões. Tentei deixar no comando que tanto o CL quanto o Tab fizessem a função do Tab mas mesmo assim qualdo clico ele muda a caixa da fonte e da um espaço no texto XD.
Mais uma duvida, no starup para que ele inicie sozinho tem como deixar para desde a tela de login, ou o minimo seria depois de logado? coloquei o temporalizador em 1 e assim que logo ele ja funciona ( os dois botões juntos ) mas queria ver se tem como deixar funcionando desde a tela de login.
chmod: alterando permissões de 'remap135.sh': Operação não permitida
Alguem sabe como resolver?
usar o "chmod 777 remap135.sh" ficar melhor
você precisa de permissões especiais, usa o sudo.
Muito bom, eu tava com o mesmo problema pra poder usar a barra vertical "|" mas ainda estou em busca de criar um layout de verdade com as modificações, e parece que vou perder um tempinho pra conseguir isso.
Obrigado!
estava com o mesmo problema, com um teclado m-880 da AOES.
depois de uma hora ou duas pesquisando sobre configurações do linux, ou aplicativos de facil remapeamento, achei esse tópico, salvou minha vida, não estava conseguindo fazer "ou" || e é inviavel ficar usando o unicode toda hora.
Obrigado !!!
Muito bom, funcionou perfeitamente
Muito obrigado Natália, funcinou certinho.
Natália, como faço para colocar o ' | ' no terminal tbm?? prf me ajudar!!! PRF ME AJUDAR!!!!
À esquerda da tecla 1 há uma tecla, basta pressionar essa tecla, saudações e bem-vindo ao DEV 👋
eu não entendi está tecla após a tecla 1 pode me explicar melhor?
como eu faço para colocar o "|" no terminal?? tipo no arquio bashrc ou zshrc??
Gracias tu método me funcionó, genia!
como eu faço para colocar o "|" no terminal?? tipo no arquio bashrc ou zshrc??
sudo vim remap27.sh
Quando executo esse comando diz que "sudo 30" comando nao encontrado, alguem pode me ajudar
Pode ser que o vim não está instalado, tenta instalar o vim