Editando o mapa do teclado -- keymap

October 26th, 2008 | by Gustavo Lichti |


Salve, 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!

Tags: , , , , ,

  1. 5 Responses to “Editando o mapa do teclado -- keymap”

  2. By Phoenix on Oct 27, 2008 | Reply

    Também usei o 7.04 e atualizei pro 8.04.

    Por aqui, pelo menos, não encontrei maiores problemas. Devo ter tido um ou outro, mas que consegui solucionar. E olha que testo até o vírus ebóla. ^^

    Estou no aguardo do 8.10; vamos ver como ele se comporta. Mas estou com boas expectativas.

    Quanto ao Debian; não há o que falar. A comunidade por si só, refleto o seu poder.

    Uma coisa que vejo nas 'dificuldades', são as formas que você enfrenta e procura resolver. Veja o seu post por exemplo; num dado problema, surgiu um ótimo tutorial pra quem estiver passando por algo parecido. ;)

    Abraços!
    []'s

  3. By InFog on Oct 28, 2008 | Reply

    Uma outra solução, bem mais acomodada, seria usar um teclado abnt2 =) Mas é claro que esta é a solução preguiçosa.
    Aprender a alterar o mapa do teclado é muito bom e pode ajudar em inúmeras situações.

    InFog

  4. By Sérgio on Oct 29, 2008 | Reply

    > 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.

    Nesta acho que posso ajudar :

    loadkeys es (como root acho eu) na consola
    setxkbmap es no X

  5. By Felipe Ventin on Jul 31, 2009 | Reply

    Aleluia!
    Comprei um notebook Acer faz 2 anos. No início usava Ubuntu, mas já faz um ano uso Debian e a um ano venho com esse problema do til que não espera a vogal… Finalmente consegui resolver!! graças a sua dica..
    Chegou ao fim as desculpas " Desculpa os erros de acentuação do meu teclado!" ahauhauahuah
    Abrigadãããããão!!!
    Felipe

  1. 1 Trackback(s)

  2. Oct 28, 2008: Editando o mapa do teclado - keymap do console e X.org

Post a Comment