Editando o mapa do teclado - keymap
October 26th, 2008Salve, Salve…
Domingão, o timão garantiu o retorno a série A do brasileirão, e então decidi que merecíamos um post hoje, só faltava o assunto.
Eu a um ano atrás exatamente, eu estava migrando o Debian do meu notebook para o Ubuntu 7.10, por que eu migrei naquela época? por vários motivos, um deles era, a vontade de testar o ubuntu, legal. a versão 7.10 me deixou bastante feliz, mas versão 8.04 veio cheia de bugs, que fez eu nos últimos 6 meses, pensar pelo menos uma vez por semana em voltar ao Debian, esses pensamentos vinha sempre que o X travava. Bom mas eu fui prorrogando isso, até chegar próximo do lançamento do 8.10, então resolvi esperar, para testar andes de regressar ao Debian. Bom a menos de 5 dias do lançamento do Ubuntu 8.10 eu perdi a paciência com o Ubuntu 8.04 e regressei ao Debian testing.
Neste regresso eu percebi que o bug da minha placa de video foi resolvido, mas um outro problema meu era com o meu teclado, ele é espanhol, e por isso o acento '~'(til) não esta no teclado, e para eu obte-lo preciso fazer a combinação 'Atl GR + 4'. Legal, mas acontece que no Debian quando fazemos esta combinação ela já imprimi o acento na tela sem esperar por uma vogal. Não considero isso um bug, já que o acento til no idioma espanhol é utilizado apenas com a letra Ñ , e o Ñ já esta no teclado por padrão no lugar o Ç.
A solução no meu caso que sou brasileiro e falo português e preciso deste acento, é alterar o keymap do console e o keymap do X.org.
Veja a minha solução:
Primeiro vamos acertar o console:
$ cd /usr/share/keymaps/i386/qwerty
$ cp es.kmap.gz ~/
# gunzip es.kmap.gz
# nano es.kmap
Pronto dentro deste arquivo a seguinte linha:
keycode 5 = four dollar asciitilde
Esta linha representa a tecla 4 do teclado alfanumérico, sendo:
keycode 5 => o codigo que o teclado envia ao kernel
four => o que vai acontece quando a tecla for simplesmente pressionada, neste caso vai aparecer o numeral 4
dollar => o que vai acontecer quando a tecla for pressionada junto com o shift, neste caso vai aparecer o simbolo $
asciitilde => o que vai acontecer quando a tecla for pressionada junto com o Alt Gr, neste caso vai aparecer o acento ~
certo, o que esta errado ?
O que esta errado é apenas o asciitilde, que tem que ser dead_tilde para aguardar uma nova tecla ser pressionada, para aí sim decidir o que vai fazer.
Então tenho que trocar apenas isso deixando esta linha da seguinte forma
keycode 5 = four dollar dead_tilde
Pronto salve o arquivo, saia do editor e finalize com o seguinte comando:
# gzip es.kmap
Temos duas opções para fazer esta alteração entrar em vigor, uma é reiniciar o sistema, a outra, no meu caso que estou usando debian é executar o comando a baixo e escolher o layout de teclado que você acabou de alterar.
# dpkg-reconfigure console-data
Pronto, o '~' já esta funcionando corretamente, mas apenas no modo texto. Agora vamos ao modo gráfico.
Para ajustar o problema no modo gráfico é simples também, quem é responsável por controlar as teclas no modo gráfico é o X.org.
Abra um console e faça:
$ cd /usr/share/X11/xkb/symbols
# nano es
Pronto dentro deste arquivo procure a seguinte linha:
key <AE04> { [ 4, dollar, asciitilde, dollar ] };
Simplesmente altere o asciitilde para dead_tilde, deixando da seguinte forma:
key <AE04> { [ 4, dollar, dead_tilde, dollar ] };
Pronto, salve o arquivo e saia.
Para fazer entrar em vigor pode reiniciar o sistema ou apenas reiniciar o X fazendo a seguinte combinação de teclas: ctrl + alt + backspace
Pronto agora esta tudo redondinho.
Eu utilizava isso já no teclado brasileiro ABNT2, para criar atalhos diretos para as seguintes pontuações '¿' e '¡'.
Para descobrir os keycodes de cada tecla podemos utilizar o showkey, um programinha que acompanha o pacote console-data, um exemplo:
# showkey -t 2 -k
É isso aí pessoal, se divirtam, mas com cuidado!



