Como reapontar teclas para outras funções

 Por Ciro Mota |  15, Junho 2020 |  Tempo de leitura aproximadamente 4 minutos.
 Edições: Adição de bloco de anúncios Em 19, Setembro 2023.

Olá pessoal, tudo bem com vocês?

Este não é um artigo tão técnico assim, mas pode ser de utilidade a quem se deparou na mesma situação que eu e pode ir atrás de meios de contornar o problema.

Recentemente fiz a aquisição de um teclado Redragon Mitra, no qual apesar de ser suspeito para falar dele por ser meu primeiro teclado mecânico, eu o adorei pelo conjunto da obra e porque não dizer, um ótimo CxB para tempos de crise. Como nem tudo são flores sempre, esse teclado possui o que acredito ser uma falha em seu firmware onde a tecla ponto/Del no teclado numérico é mapeada como meramente vírgula. Ou eles simplesmente erraram na impressão da tecla e esta deveria ser de fato uma vírgula ali ao invés do ponto.

Mas isso por si não invalida o uso do teclado e é um tanto simples poder trocar a função desta e outras teclas para atender ao nosso uso. No meu caso específico consegui realizar essa modificação rapidamente tanto no Linux e de forma ainda mais fácil no Windows. Vejamos abaixo como proceder.

Continua após a publicidade

No Linux:

OBS: Este método não funciona para sessões Wayland.

Nos sistemas Linux o caminho é um pouco mais “tortuoso” mas nada que um pouco de atenção não resolva.

Execute o comando abaixo no Terminal:

xev -event keyboard 

O Terminal será aberto com duas janelas, aqui basta pressionar a tecla desejada e teremos as informações correspondentes a ela que são detectadas pelo sistema.

No meu caso vemos através da informação keycode 91, a tecla tem realmente a representação de uma vírgula. Próximo passo, execute este outro comando no Terminal, nele veremos os parâmetros atribuído da tecla ponto e a função delete presente na tecla “vírgula” para que tenhamos conhecimento para o remapeamento:

xmodmap -pke | grep -e period && xmodmap -pke | grep -e Delete

Podemos observar a informação para o keycode 91 que corresponde ao delete e que também deveria corresponder ao ponto, ou seja, acaba corroborando para o que eu acredito que seja mesmo uma falha de apontamento no firmware.

Continua após a publicidade

Por fim montamos a nossa linha de comando para poder então remapear a tecla corretamente, não é necessário neste caso utilizar da soma de das linhas exceto se quisermos que a tecla funcione apenas como ponto, nesse caso pode utilizar toda a linha 60, removendo os atributos “greater” (representação do sinal de maior). Para o meu caso, o comando abaixo já irá satisfazer o que precisamos:

sudo xmodmap -e "keycode 91 = KP_Delete KP_Decimal"

E fim, nossa tecla agora terá o comportamento usual. Infelizmente o procedimento até aqui não garante que essas informações funcionarão após o reboot do PC, para isso precisamos lançar mão ao bom e velho Shell Script e ao aplicativo nativo gestor de aplicativos de inicialização do próprio Ubuntu no meu caso.

O conteúdo do Shell Script é simples:

xmodmap -e "keycode 91 = KP_Delete KP_Decimal"

Nomeie o arquivo com o nome que desejar e salve-o também no diretório que desejar. Não esquecer de dar as permissões de execução ao arquivo: chmod +x modmap.sh

Em “Aplicativos iniciais de sessão”, basta adicionar a entrada correspondente ao script criado, no meu caso eu utilizei o meu /home para salvar o arquivo:

Comando utilizado:

/bin/bash -c "sleep 20; $HOME/modmap.sh"

E agora sim, toda vez que iniciar, o mapeamento será feito automaticamente.

Continua após a publicidade

Pode não ter sido o melhor dos procedimentos, se você conhece algum que seja ainda mais simples, me deixa saber logo abaixo nos comentários. Com certeza irei atualizar o artigo com essa informação.

No Windows:

E para Windows, nada mais ao estilo do mesmo como apenas adicionar uma informação ao seu registro ou um simples programa que consiga fazer isso com poucos cliques. No nosso caso encontrei o programa SharpKeys, que é inclusive uma ferramenta Open Source.

Download aqui

Utilizando o modo portable, descompactamos e executamos, temos a tela inicial da ferramenta e precisamos apenas localizar aquilo que precisamos, ou seja, a tecla ponto (ou vírgua nesse caso) no teclado numérico.

Continua após a publicidade

Clique em “Add” » “Type Key” e pressione a tecla desejada, em seguida no painel da direita localize a tecla que deseja fazer o remapeamento. No meu caso ficou de ponto para ponto e sinal de maior (.>).

Clique em “OK” e em “Write to Registry”. Reinicie para que as alterações tenham efeito. Nesse caso, não foi possível mapear a tecla também como Delete, porém a função de ponto passou a funcionar normalmente.

Espero que mais esse artigo seja útil. Caso tenha outras dicas de como fazer, deixa ai embaixo nos comentários.

Até mais!