A intenção deste tópico é documentar, para quem tiver interesse, a alteração da ", "(vírgula) presente no teclado numério para “.” (ponto decimal).
Recentemente comprei um teclado 100% da Redragon porém na parte de números ele trás a vírgula decimal, diferente do teclado que usava antes que trazia o ponto decimal. Isso me encomodou pois no dia-a-dia trabalho muito com endereços IP e estou acostumado a usar o ponto ali junto com o teclado numérico.
A solução foi remapear essa tecla, o tutorial abaixo foi feito com inteção de alterar a vírgula por ponto, mas pode ser replicada para outros cenários com o mesmo propósito sem a necessidade de baixar nenhum software adicional pra isso.
1. Descobrir o keycode:
Antes é necessário descobrir qual o keycode de cada tecla, esse keycode é interpretado pelo kernel. O comando abaixo irá auxiliar na identificação regisstrando o evento quando você precionar a tecla que deseja remapear.
$ xev
observe que o keycode para a vírgula no teclado numérico é 91.
Obs.: tentei usar identificadores de keycode online, porém eles apresentam código diferente do que o kernel relamente usa, por isso a nececssidade de usar o xev!!
É possível verificar como todos os keycodes são mapeados pelo kernel usando o comando abaixo
$ xmodmap -pke
Obs.: é importante copiar a linha correspondente ao keycode de seu interesse caso seja necessário retornar ao padrão!!
2. Remapeando Tecla:
Usaremos o comando xmodmap como parametro -e para remapear o keycode para o significado que queremos que ele tenha a partir de agora, para isso precisamos dizer que o keycode correspondente, que agora ele tem um novo nome para o simbolo:
$ xmodmap -e "keycode 91 = Num_Lock period"
após o “=” vem o symbol name que a tecla deve representar, para ponto decimal é period, para vírgula é comma. O Num_Lock serve para que o teclado aceite o ponto decimal mesmo com o Num Lock desligado, sem ele o ponto só irá funcionar quando essa funcionalidade estiver desligada.
Obs.: Para saber todos os symbol name acessar: List of Keysyms Recognised by Xmodmap - LQWiki
Na imagem abaixo podemos ver o comportamenteo antes e depois do remapeamento da tecla que antes imprimia “,” e agora “.”
3. Persistindo a Mudança:
Pronto o mapeamento já está feito, porém ao reiniciar o sistema a modificação será perdida. Para persistirmos a mudança fazemos um Shell Script (em ~/.config) para ser executado automaticamente toda vez que o sistema for inicalizado.
#!/bin/bash
sleep 2
xmodmap -e "keycode 91 = Num_Lock period"
Obs.: o comando sleep serve para garantir que todo que todo o ambiente grafico seja iniciado antes de executar o remapeamento. Pois o xmodmap depende deste ambiente estar totalemnte inicializado para ser executado!!
agora damos permição de execução para o Script:
$ chmod +x ~/.config/xmodmap.sh
e então criamos um arquivo de inicialização (em ~/.config/autostart) caso o diretório não exista, podemos cria-lo:
[Desktop Entry]
Type=Application
Exec=/home/USER/.config/xmodmap.sh
Hidden=false
NoDisplay=false
X-GNOME-Autostart-enabled=true
Name=xmodmap
Comment=remap key
Obs.: observe que o nome de usuário deve corresponder ao seu
Pronto agora após reiniciar o sistema a tecla será remapeada.