Configuração manual de teclados com padrão internacional (para Notebooks e PCs)

Iniciado por alexmatos, 02 de Dezembro de 2006, 18:15

tópico anterior - próximo tópico

alexmatos

Se você tem um teclado padrão ABNT2, provavelmente não vai precisar ler essa dica. Agora, se você tem um daqueles notebooks que comprou nos EUA, ou um notebook muito velho (o meu caso), essa dica pode lhe ser muito útil.

Um dos grandes problemas na configuração de um notebook no Linux é que não existem drivers para o teclado, ainda mais se o notebook é antigo. Num notebook com padrão internacional (o meu é um Toshiba Satellite, de quase sete anos de idade) você normalmente tem duas opções:


  • Escolher o padrão abnt2 e ficar com os ç, á, ã e etc, funcionando, em lugares completamente distintos do que as teclas indicam,
  • Escolher o padrão usa e ficar com as teclas funcionando nos lugares indicados, porém não conseguir pôr acentos e etc (ex.: ç = 'c, á = 'a, ã = ~a).

No meu caso era um pouco pior, já que na primeira opção, eu perdia minha /, e na segunda, a minha \.

Seria ideal, então, conseguir configurar tecla por tecla, na segunda opção, para ter minha \ de volta e a acentuação funcionando normalmente.

Depois de muito procurar, achei alguns sites explicando sobre o procedimento, mas nenhum deles conseguiu me ensinar, sozinho, como fazer isso. Depois que, com muita briga, consegui a solução, resolvi postar aqui para que outros, como eu, possam ter seus teclados funcionando perfeitamente. O procedimento foi testado no Xubuntu e provavelmente funciona também no Ubuntu e no Kubuntu. Não precisa de softwares adicionais além dos que já vem com a distribuição e pode ser feito por qualquer um, leigo ou experiente. Sem mais delongas, vamos lá:

Troque o padrão do seu teclado para Inglês dos Estados Unidos. Usuários do Ubuntu e Kubuntu devem ter uma ferramenta com interface gráfica para executar essa tarefa. No Xubuntu, é assim:

Abra o terminal e faça um backup do arquivo de configuração do teclado:

sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf_BACKUP

Abra o arquivo de configuração:

sudo mousepad /etc/X11/xorg.conf

Procure algo que se pareça com isso:

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xorg"
Option "XkbModel" "abnt2"
Option "XkbLayout" "br"
EndSection


e troque para:

Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc104"
Option "XkbLayout" "us"
EndSection


Salve o arquivo e digite, no terminal:

setxkbmap us

Pronto! O perfil já está alterado.

Vamos usar um programinha chamado xev para obter informações sobre cada tecla que queremos alterar.

Abra o terminal e digite:

xev

Pressione a primeira tecla de deseja alterar. Algo assim vai aparecer:


KeyPress event, serial 31, synthetic NO, window 0x2400001,
    root 0x48, subw 0x0, time 1146030644, (-333,449), root:(90,755),
    state 0x0, keycode 34 (keysym 0xfe51, dead_acute), same_screen YES,
    XLookupString gives 2 bytes: (c2 b4) "´"
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: True

KeyRelease event, serial 31, synthetic NO, window 0x2400001,
    root 0x48, subw 0x0, time 1146030714, (-333,449), root:(90,755),
    state 0x0, keycode 34 (keysym 0xfe51, dead_acute), same_screen YES,
    XLookupString gives 2 bytes: (c2 b4) "´"
    XFilterEvent returns: False


O que nos interessa nisso tudo é o número do keycode. Nesse caso é o 34. Faça isso com todas as teclas problemáticas e anote os números.

Com os keycode's em mãos, é hora de alterar as funções das teclas.

Abra o terminal e digite:

mousepad .Xmodmap

Se você é usuário (K)Ubuntu, troque mousepad por gedit (Ubuntu) ou kedit (Kubuntu). Se você já tem um pouquinho de intimidade com seu sistema, use o seu editor de textos favorito (vim, emacs, etc...). A idéia aqui é criar o arquivo .Xmodmap na sua pasta pessoal.

Agora, vamos fazer a configuração manual das teclas. Adicione uma linha desse tipo para cada tecla que deseja alterar:

keycode NÚMERO_DO_KEYCODE = FUNÇÃO_DA_TECLA FUNÇÃO_DA_TECLA_COM_O_SHIFT_PRESSIONADO

Por exemplo, eu quero configurar a tecla com keycode 34 para acento agudo e acento grave. A linha deveria ser assim, então:

keycode 34 = acute grave

Porém, desse jeito, quando eu tento acentuar, eu tenho o resultado: 'a, 'e, `a... Vamos resolver esse problema indicando que essa tecla é uma dead key (tecla morta), o que vai fazer com que ela espere a próxima tecla ser pressionada para funcionar. O código então ficaria assim:

keycode 34 = dead_acute dead_grave

Com isso, '+a = á, `+a = à e até '+Espaço = ' (aspas simples). Vou colocar o meu arquivo .Xmodmap pra que vocês tenham uma idéia de como ele deve ficar no final:


keycode 51 = backslash bar
keycode 48 = dead_acute quotedbl
keycode 49 = dead_grave dead_tilde
keycode 15 = 6 dead_circumflex


Nota: no final dessa dica há uma lista com a maioria dos códigos dos símbolos.

Salve o arquivo. Vamos criar um arquivo executável para que você possa testar a sua configuração. No terminal:

mousepad Xmodmap_TESTE

Dentro do arquivo, escreva isso (usando o meu arquivo como exemplo):


#!/bin/bash
xmodmap -e 'keycode 51 = backslash bar'
xmodmap -e 'keycode 48 = dead_acute quotedbl'
xmodmap -e 'keycode 49 = dead_grave dead_tilde'
xmodmap -e 'keycode 15 = 6 dead_circumflex'


Para tornar o arquivo executável:

sudo chmod +x Xmodmap_TESTE

Execute o arquivo com

./Xmodmap_TESTE

E veja se as configurações fizeram efeito. Faça as alterações necessárias no .Xmodmap e no Xmodmap_TESTE até que seu teclado esteja em perfeito funcionamento.

Vamos, agora, adicionar à inicialização do sistema a nossa configuração, para que a gente não tenha que executar o Xmodmap_TESTE manualmente a cada vez que ligarmos o computador.

Nota: a partir daqui, essa dica só é válida para o Xubuntu. Usuários do Ubuntu ou Kubuntu que queiram contribuir com informações de como fazer isso nos respectivos sistemas serão bem-vindos.

Faça um backup do arquivo de inicialização a ser alterado:

sudo cp /etc/xdg/xfce4/xinitrc /etc/xdg/xfce4/xinitrc_BACKUP

Abra o arquivo para edição com:

sudo mousepad /etc/xdg/xfce4/xinitrc

Localize as linhas:

# load local modmap
test -r $HOME/.Xmodmap && xmodmap $HOME/.Xmodmap


e troque por

# load local modmap
test -r $HOME/.Xmodmap && xmodmap -e $HOME/.Xmodmap


Salve o arquivo e pronto! O seu teclado já está funcionando perfeitamente!



Lista dos códigos dos símbolos:

acento agudo ( ´ ) -- dead_acute
acento grave ( ` ) -- dead_grave
acento circunflexo ( ^ ) -- dead_circumflex
til ( ~ ) -- dead_tilde
trema ( ¨ ) -- dead_diaeresis
aspas ( " ) -- quotedbl
aspas simples ( ' ) -- apostrophe
ponto ( . ) -- period
vírgula ( , ) -- comma
ponto-e-vírgula ( ; ) -- semicolon
dois-pontos ( : ) -- colon
barra ( / ) -- slash
barra invertida ( \ ) -- backslash
barra vertical ( | ) -- bar
exclamação ( ! ) -- exclam
interrogação ( ? ) -- question
abre-parênteses ( ( ) -- parenleft
fecha-parênteses ( ) ) -- parenright
abre-colchetes ( [ ) -- bracketleft
fecha-colchetes ( ] ) -- bracketright
abre-chaves ( { ) -- braceleft
fecha-chaves ( } ) -- braceright
maior ( > ) -- greater
menor ( < ) -- less
mais ( + ) -- plus
menos ( - ) -- minus
sublinhado ( _ ) -- underscore
asterisco ( * ) -- asterisk
e-comercial ( & ) -- ampersand
percentual ( % ) -- percent
cifrão ( $ ) -- dollar
sustenido ou "jogo-da-velha" ( # ) -- numbersign
arroba ( @ ) -- at

Obs: Se você precisa de algum que não está na lista, pergunte que eu vejo se consigo descobrir.

engdoug

Ae  Galera o jeito mais facil de resolver isso é muito simples, tbm tenho um Toshiba Satellite M115-S3094 e tive o mesmo problema, coloque em System Setings o layout com US English -> Variacao intl /
Modelo do Keyboar no meu caso eu coloquei Toshiba S3000

Utilizem o vi ou qualquer outro editor pra alterar o arquivo
/etc/gtk2.0/gtk.immodules

na linha
"cedilla" "Cedilla" "gtk+" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa"

acresente um :en
vai ficar -> "cedilla" "Cedilla" "gtk+" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa
:en"

pronto agora pra modelos de layout en voce tem o ç e nao o 'c haha

Espero ter ajudado, funcionou aqui, quem conseguir com essa dica, deixa um post ae!

vlw!
Douglas Campos
Atlhon 64 300+
MB- Abit Av8
HD SATA 80 Seagate
1GB ddr400 - Kingston
NVidia Gforce 2 - 64 MB ;(

//--------------------
Notebook Toshiba M115-S3094
14.1"
80GB
Intel Core Duo 1.6
1GB DDR2 533

alexmatos

Obrigado pela contribuição, amigo!

O motivo pelo qual postei esse procedimento, que parece sem mais complicado, é porque em alguns casos existem teclas que não funcionam em um padrão (o caso das minhas teclas / e \) e esse procedimento permite que você configure a tecla individualmente (o que é algo extremamente poderoso). Isso serve também pra configurar aqueles atalhos da tecla Fn, presente em alguns notebooks, mas isso já é assunto pra outro tópico.

cellopedroso

Olá, consegui resolver o meu problema da seuinte forma:
no xorg.conf configurei o xkblayout para "us_intl".
Section "InputDevice"
Identifier "Generic Keyboard"
Driver "kbd"
Option "CoreKeyboard"
Option "XkbRules" "xfree86"
Option "XkbModel" "pc104"
Option "XkbLayout" "us_intl"
EndSection


Funcionou direitinho para as teclas mortas e todo o resto.

Madrigal

Tem um jeito ainda mais fácil! Há mais de um ano queria aprender a configurar, pois bem, basta editar este arquivo:

Citar
sudo gedit /etc/X11/xkb/symbols/br

E pronto!

Só não consegui ainda como configurar as teclas numéricas, pra trocar , por exempo, a vírgula por ponto.

Pra quem interessar, eu ensino os códigos pra língua esperanto aqui: http://www.orkut.com/CommMsgs.aspx?cmm=7270568&tid=2518889040104433878&start=1
8)

Madrigal

Citação de: alexmatos online 02 de Dezembro de 2006, 18:15
Obs: Se você precisa de algum que não está na lista, pergunte que eu vejo se consigo descobrir.


Eu gostaria de saber qual é o código para o ordinal masculino (º) e ordinal feminino (ª), pois o que aparece não tem o tracinho embaixo, no Windows aparece, em parece que o padrão de todo Linux é não ter.

bresol

to tentando fazer uma dessas coisas mas ele diz q nao tenho permicao.... :-\

como resolvo isso?

alexmatos

Normalmente, colocando "sudo" na frente do comando. Isso significa que o comando será executado com permissões administrativas.

lfernandosg

o teclado estava funcionando normal com as configuraćões

US
usintl     com x marcado nesse nas configuraćões do gnome.

do nada o cedilha ficou doido agora olhem como ele aprece, o resto todo funciona menos o cedilha, já segui o tópico de todas as formas nesse fórum e nada.alguém tem alguma idéia até porque estava tudo normal.


obs.: tem alguma coisa doida mesmo dentro do kopete o cedilha funciona normal.
Dell Xps M1330/c2d 2.0Ghz/4GB ddr2/320GB sata/etc...

alexmatos

Citação de: lfernandosg online 08 de Maio de 2007, 13:33
o teclado estava funcionando normal com as configuraćões

US
usintl     com x marcado nesse nas configuraćões do gnome.

do nada o cedilha ficou doido agora olhem como ele aprece, o resto todo funciona menos o cedilha, já segui o tópico de todas as formas nesse fórum e nada.alguém tem alguma idéia até porque estava tudo normal.


obs.: tem alguma coisa doida mesmo dentro do kopete o cedilha funciona normal.

Tenta o seguinte: se seu teclado é padrão ABNT2 e tem a tecla ç, vai no terminal e dá o comando

xmodmap -e 'keycode 47 = ccedilla Ccedilla'

e testa a tecla ç pra ver se funcionou. Se sim, você vai ter que adicionar essa configuração na inicialização do sistema com o comando

echo 'keycode 47 = ccedilla Ccedilla' >> ~/.Xmodmap

Tenta aí e diz pra gente se funcionou.

lfernandosg

meu teclado é international e não abnt2, como faço? para colocar o cedilha digito o acento agudo+letra C
Dell Xps M1330/c2d 2.0Ghz/4GB ddr2/320GB sata/etc...

Diego_Rocha


alexmatos

Citação de: lfernandosg online 08 de Maio de 2007, 21:27
meu teclado é international e não abnt2, como faço? para colocar o cedilha digito o acento agudo+letra C
Você tentou seguir esse tutorial? Acho que ele explica o que você deve fazer... tem que ter um pouquinho de paciência, mas funciona!

Suponho que você tenha um notebook, estou errado? Se estiver certo, qual o modelo dele?

lfernandosg

tentei seguir sim, agora estou com Hp dv6125Se e estava tudo normal tanto que no kopete ele funciona normal mas no resto das aplicações nada....está saindo agora porque estou em outro computador.....
Dell Xps M1330/c2d 2.0Ghz/4GB ddr2/320GB sata/etc...

alexmatos

Quando você vai em Sistema > Preferências > Teclado, na aba Disposições, qual o Modelo de teclado que está selecionado?

Em que parte você não conseguiu seguir o tutorial? Se você seguí-lo do início ao fim, ele funciona, tenho certeza!