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_acuteacento grave (
` ) --
dead_graveacento circunflexo (
^ ) --
dead_circumflextil (
~ ) --
dead_tildetrema (
¨ ) --
dead_diaeresisaspas (
" ) --
quotedblaspas simples (
' ) --
apostropheponto (
. ) --
periodvírgula (
, ) --
commaponto-e-vírgula (
; ) --
semicolondois-pontos (
: ) --
colonbarra (
/ ) --
slashbarra invertida (
\ ) --
backslashbarra vertical (
| ) --
barexclamação (
! ) --
exclaminterrogação (
? ) --
questionabre-parênteses (
( ) --
parenleftfecha-parênteses (
) ) --
parenrightabre-colchetes (
[ ) --
bracketleftfecha-colchetes (
] ) --
bracketrightabre-chaves (
{ ) --
braceleftfecha-chaves (
} ) --
bracerightmaior (
> ) --
greatermenor (
< ) --
lessmais (
+ ) --
plusmenos (
- ) --
minussublinhado (
_ ) --
underscoreasterisco (
* ) --
asteriske-comercial (
& ) --
ampersandpercentual (
% ) --
percentcifrão (
$ ) --
dollarsustenido ou "jogo-da-velha" (
# ) --
numbersignarroba (
@ ) --
atObs: Se você precisa de algum que não está na lista, pergunte que eu vejo se consigo descobrir.