Feitas as primeiras apresentações vamos agora ver como se procede á configuração do Linux, tanto em modo de terminal como no Sistema de Janelas X.
Primeiro de tudo há que dizer ao Linux qual a localização das várias teclas segundo a disposição do teclado português. Tal é conseguido através da utilização do comando loadkeys.
O comando a executar é:
loadkeys portugal.map
Experimente algumas teclas como ",.|!"#$%&/()=?", etc...
OK, agora já temos as teclas no sitio certo (incluindo !#$%&/()=?'{}
etc) mas, e os c-cedilhados
, a com til
e outros caracteres
acentuados ?
Bem, felizmente para nós, o ficheiro de mapa de teclado permite também especificar teclas especiais chamadas "deadkeys". Deadkeys são teclas, que, quando presionadas não tem como resultado o aparecimento de um caracter no ecran, limitando-se a alterar o comportamento da tecla pressionada a seguir.
Exemplo:
O equivalente a (em MSDOS) pressionar a tecla til
seguida da tecla
a, o que provoca o aparecimento de um a-com-til (ã) !!!
Eis a linha do ficheiro "portugal.map" responsável pela
definição da tecla c-cedilhado
:
// atribuição da tecla <tt/c-cedilhado/ á tecla com código 39
keycode 39 = +ccedilla Ccedilla
Antes de prosseguir peco-lhe que introduza o seguinte comando:
echo -n -e "\\033(K"
Este comando limita-se a pedir ao terminal que entre em modo de "8
bits", modo este necessário a exibição de caracteres especiais
tais como o c-cedilhado
, a-com-til
etc.
Experimente pressionar a tecla c-cedilhado
. Em principio deverá
ter aparecido um c-cedilhado
ou um caracter estranho. No segundo
caso, tente não se preocupar com isso, este assunto será tratado mais
á frente. Experimente outras teclas com acentos. Sim, é possivel
que tenham aparecido alguns caracteres estranhos ... deixemos isso de
lado...
OK, agora vamos ... aos caracteres estranhos. Provavelmente alguns dos caracteres que apareceram no passo anterior não eram exactamente o que estaria á espera.
O que acontece, é que, a fonte de caracteres corrente poderá não possuir todos os caracteres de que necessitamos. Vamos entao mudar a fonte de caracteres activa, executando o comando:
setfont latin1u-16
E eis que aparecem os caracteres que todos nos esperavamos.
Mas, e se alguns dos caracteres continuassem a não aparecer ? Bem, neste caso, teriamos de convencer o ecran a mostrar os caracteres certos em cada caso. Expliquemos, o que se passaria neste caso, era que a fonte de caracteres não possuia a imagem certa de alguns dos caracteres que desejavamos exibir (o que alias acontecia com a fonte anterior).
Neste caso poderiamos recorrer ao comando mapscrn. Como foi descrito
atrás, o referido comando permite especificar qual o caracter X a ser
exibido no ecran, quando um programa deseja exibir um caracter Y.
Desta forma, poderiamos fazer com que , ao escrever o caracter
c-cedilhado
no ecran, fosse na realidade exibido um outro
caracter cuja imagem na nossa fonte de caracteres correspondesse a
imagem de um c-cedilhado
.
O comando a ser executado seria :
mapscrn <nome do ficheiro de tabela de tradução>
O ficheiro com a tabela de tradução teria no entanto de ser criado por nos, segindo um processo moroso de tentativa e erro ate encontrar o caracter cuja "imagem" nos pretendiamos. Ou, de uma forma mais facil, poderiamos usar o comando showfont.
No entanto nas versões de software por mim testado, o uso deste ultimo comando revelou-se desnecessário.
O Sistema de Janelas X vem equipado com um utilitário destinado à configuração do teclado, chamado xmodmap.
O comando xmodmap cumpre uma função identica ao comando loadkeys,
ou seja, lê um ficheiro de mapa de teclado de X, expecificando as
equivalencias entre os scancodes
e respectivos keycodes
.
Eis um excerto deste ficheiro:
keycode 47 = Ccedilla
keycode 48 = masculine ordfeminine
keycode 51 = Dtilde Dcircumflex_accent
De notar que, a configuração do Sistema de Janelas X não interfere de forma alguma com a configuração do Modo de Texto. De facto, é possivel ter o seu X bem configurado, e no entatanto não ter realizado qualquer tipo de configuração ao Modo de Texto, e vice-versa.
Nota : Na versão XFree 3.1.x não é possivel a utilização de dead-keys ao contrario da versão XFree86 2.1.x. Isto deve-se so facto de o "X Consortium" ter chegado à conclusão de que o sistema actual de mapeamento de teclas não tratava de forma satisfatória toda a imensa variedade de linguas escritas nas várias partes do mundo. Deste modo, decidiu-se que o "peso" relativo à gestão do teclado fosse transferido para as aplicações X. Desta forma o suporte ou não de dead-keys numa aplicação depende apenas dela, podendo assumir vários aspectos :
ligada
no seu ficheiro de configuraçãoAté aqui tudo bem, mas decerto que não teremos de executar todos estes comandos no inicio de cada sessão de trabalho, pois não ?
A resposta é obviamente: Não !
Para nos poupar este trabalho existem uma série de ficheiros de configuração onde deveremos colocar a descrição dos comandos a executar. Os ficheiro são :
/etc/rc.d/rc.keymap - Ficheiro lido quando do boot do sistema operativo, servindo para especificar os comandos de inicialização das várias consolas de modo texto.
Segue-se a descrição das linhas que deveram ser incluidas neste (se não tiverem sido incluidas pela instalação base do sistema).
-------- INICIO ---------
# Inicializacao das consolas
#
INITTY=/dev/tty[1-9]*
# activacao do modo de mapeamento de 8-bits
#
for tty in $INITTY
do
echo -n -e "\\033(K" > $tty
done
# carregamento da tabela de mapeamento de caracteres
#
loadkeys portugal.map
# retirar o comentario do proximo comando se tiver de usar o mapscrn
#
# mapscrn /usr/liv/kbd/ <qualquer coisa>
---------- FIM ---------
/etc/rc.d/rc.font - Neste ficheiro deveram ser especificados os comandos relativos ao carregamento das fontes de modo texto.
-------- INICIO --------
#!/bin/sh
# especificacao da fonte a carregar
#
setfont /usr/lib/kbd/consolefonts/lat1u-16
---------- FIM ---------
Alem das alterações a executar nos ficheiros de configuração
atrás mencionados, terá também de copiar o ficheiro
.xmodmap
para a sua diréctoria HOME para que o Sistema de
Janelas X fique correctamente configurado.