Penguin
Note: You are viewing an old revision of this page. View the current version.

Portuguese-HOWTO


Linux Portuguese-HOWTO

Configuraccedilotildees do Linux para a Liacutengua Portuguesa

Carlos A. M. dos Santos <

casantos@cpmet.ufpel.tche.br>

CPMet/UFPEL -- Pelotas, RS, Brasil

v3.2, 24 May 1999


Este documento pretende ser um guia de referecircncia de configuraccedilatildeo do Linux e seus programas, teclados e fontes de caracteres, permitindo sua utilizaccedilatildeo mais confortaacutevel por pessoas que falem a Liacutengua Portuguesa.


1. Introduccedilatildeo

  • 1.1 Finalidades deste HOWTO
  • 1.2 Onde encontrar a versatildeo mais atual
  • 1.3 Paacutegina oficial na WWW
  • 1.4 Como enviar colaboraccedilotildees

2. Informaccedilotildees gerais

  • 2.1 Conjuntos de caracteres
  • 2.2 Modo texto versus Sistema de Janelas X

3. Configuraccedilatildeo do console (modo texto)

  • 3.1 Mapas de teclado
  • 3.2 Mapas de traduccedilatildeo de tela
  • 3.3 Comandos do pacote KBD
  • 3.4 Carregamento de uma fonte de caracteres
  • 3.5 Carregando um mapa de teclado
  • 3.6 Verificando erros

4. Biblioteca de funccedilotildees libc e aplicativos GNU

  • 4.1 Configurando o suporte internacional
  • 4.2 Problemas com a libc 5

5. Configuraccedilatildeo do X

  • 5.1 Configuraccedilatildeo do xinit
  • 5.2 Configuraccedilatildeo do XDM
  • 5.3 Compose
  • 5.4 Locale
  • 5.5 Geraccedilatildeo de mapas com o XKeyCaps
  • 5.6 Contornando os limites do X

6. Configuraccedilatildeo dos vaacuterios programas

  • 6.1 Aplicativos
  • 6.2 Rede local e Internet

7. Ficheiros necessaacuterios

8. Informaccedilotildees Adicionais

  • 8.1 Fontes de informaccedilatildeo sobre Linux em Portuguecircs
  • 8.2 Free Translation Project
  • 8.3 LIE-BR
  • 8.4 Versotildees de software testadas

9. Observaccedilotildees finais

  • 9.1 Futuras adiccedilotildees a este documento
  • 9.2 Nota de Direitos de Autor
  • 9.3 Garantia (inexistecircncia de) e nota de responsabilidade
  • 9.4 Agradecimentos

10. Bibliografia comentada


1. Introduccedilatildeo

Agrave semelhanccedila de outras liacutenguas faladas na Europa, a Liacutengua Portuguesa tem caracteriacutesticas especiais, como a utilizaccedilatildeo de caracteres acentuados, que tornam o seu suporte difiacutecil, pouco intuitivo ou ateacute mesmo impossiacutevel, por parte do software utilizado nos nossos computadores.

Nossa liacutengua assume particularidades em cada um dos paiacuteses em que eacute falada e mesmo dentro de um uacutenico paiacutes como o Brasil, de dimensotildees continentais e com influecircncias culturais de muitos outros povos. Este documento foi originalmente escrito por um portuguecircs, mas agora eacute mantido por um brasileiro. Haacute uma mistura de sotaques que deve se manter por um bom tempo, pois natildeo haacute razatildeo para alterar o texto original senatildeo para fazer de adiccedilotildees e correccedilotildees, ateacute por respeito ao primeiro autor. Termos ``estrangeiros'' desnecessaacuterios foram substituiacutedos por correspondentes da Liacutengua Portuguesa, preservando-se apenas os que jaacute fazem parte do jargatildeo da informaacutetica.

1.1 Finalidades deste HOWTO

Este HOWTO eacute um guia de referecircncia de configuraccedilatildeo do sistema operativo Linux e seus programas, teclados e fontes de caracteres, permitindo sua utilizaccedilatildeo mais confortaacutevel por pessoas que falem a Liacutengua Portuguesa. Como os programas mais antigos natildeo foram desenhados com suporte a caracteres acentuados ou internacionalizaccedilatildeo, agraves vezes eacute preciso usar algum artifiacutecio que permita contornar o problema, mas o resultado nem sempre eacute totalmente satisfatoacuterio e em alguns casos chega ser frustrante. As dificuldades encontradas centram-se essencialmente em torno de quatro pontos:

  • a introduccedilatildeo de caracteres acentuados atraveacutes do teclado, como seja a

escrita de joao em vez da sua forma correcta: joatildeo; *

  • a exibiccedilatildeo dos mesmos na tela do computador. O suporte resume-se

normalmente agrave correcta localizaccedilatildeo das teclas, nada mais; *

  • o correto tratamento de convenccedilotildees nacionais de formato de datas, horas e

valores monetaacuterios; *

  • a exibiccedilatildeo de mensagens, tiacutetulos e demais informaccedilotildees dos programas em

outra liacutengua que natildeo o Inglecircs, que eacute a liacutengua original da maioria desses programas. *

Versotildees anteriores do Portuguese HOWTO concentravam-se em contornar as duas primeiras dificuldades mencionadas, de forma a fazer que, dentro do possiacutevel, tanto o sistema operativo como os programas nele utilizados aceitassem os caracteres acentuados e usassem os teclados com suporte para o Portuguecircs. Embora esse objetivo ainda seja perseguido, os problemas de teclado e caracteres jaacute tecircm soluccedilotildees satisfatoacuterias, pelo menos para as aplicaccedilotildees mais usadas. As proacuteximas versotildees deveratildeo se dedicar mais aos dois uacuteltimos problemas.

O texto conteacutem uma jaacute natildeo tatildeo breve discussatildeo sobre o tratamento do teclado e das fontes de caracteres do console pelo Linux, bem como do suporte a vaacuterias liacutenguas nacionais. O Sistema de Janelas X tambeacutem eacute discutido, fazendo-se uma comparaccedilatildeo entre ele e o modo de texto. Por fim, satildeo fornecidas instruccedilotildees para a configuraccedilatildeo do sistema operativo e de diversos aplicativos importantes.

O documento tem se tornado menos slackwariano, incluindo cada vez mais informaccedilotildees relativas a outras distribuiccedilotildees. Slackware e Caldera ainda se baseiam na versatildeo 5 da biblioteca de funccedilotildees do sistema para Linux (libc), enquanto Debian, Red Hat, !TurboLinux?, S.u.S.E e Stampede jaacute suportam a versatildeo 6 (que na verdade eacute a glibc versatildeo 2). Esta nova versatildeo da biblioteca estaacute um passo adiante no suporte a internacionalizaccedilatildeo e localizaccedilatildeo. A partir da versatildeo 3.2 do Portuguese-HOWTO as particularidades de cada distribuiccedilatildeo seratildeo destacadas quando houver necessidade. A tentativa de tornar Debian uma distribuiccedilatildeo ``de referecircncia'' a partir da versatildeo 3.0 do HOWTO fracassou miseravelmente porque o nuacutemero de diferenccedilas entre as distribuiccedilotildees eacute muito grande.

A intenccedilatildeo original de natildeo tentar concentrar toda a informaccedilatildeo em um uacutenico texto, tratando apenas de alguns temas essenciais e fornecendo referecircncias para outras fontes, tambeacutem fracassou. O HOWTO em sua versatildeo 3.1 jaacute alcanccedilava 38 paacuteginas impressas em formato A4, o que estaacute longe de poder ser chamado de sucinto. As principais razotildees para tal gigantismo satildeo a necessidade de discutir diferenccedilas entre as distribuiccedilotildees e a necessidade de fornecer informaccedilotildees mais detalhadas sobre aplicativos.

Excetuando-se aspectos muito especiacuteficos do Linux, como a configuraccedilatildeo do modo texto e do kernel, a maioria das informaccedilotildees contidas neste documento pode ser aplicada a outros sistemas Unix. Exemplos satildeo as configuraccedilotildees do Sistema de Janelas X e de vaacuterios aplicativos, que foram aplicadas em Solaris 2.{5,6,7} e Digital UNIX 3.2. Os mapas de teclado para terminais X e estaccedilotildees de trabalho Sun foram criados e satildeo usados em maacutequinas que rodam Solaris. O documento poderaacute um dia se tornar o ``Unix Portuguese HOWTO'', embora no momento natildeo se tenha intenccedilatildeo ou meios de fazecirc-lo.

1.2 Onde encontrar a versatildeo mais atual

Os Linux HOWTO fazem parte do Projeto de Documentaccedilatildeo Linux (Linux Documentation Project -- LDP). Os documentos do LDP satildeo mantidos em servidores da Universidade da Carolina do Norte (UNC) e do Instituto de Tecnologia de Massachusetts (MIT), nos Estados Unidos da Ameacuterica, e podem ser obtidos via FTP anocircnimo nos seguintes endereccedilos:

* ftp://metalab.unc.edu/pub/Linux/docs/HOWTO (conhecida anteriormente como sunsite.unc.edu). *

* ftp://tsx-11.mit.edu/pub/linux/docs/HOWTO *

Pode-se tambeacutem folhear os documentos HOWTO em formato HTML no endereccedilo

* http://metalab.unc.edu/LDP/HOWTO *

Muitas localidades mantecircm coacutepias desses documentos. Deve-se dar preferecircncia ao acesso agrave coacutepia mais proacutexima, para economizar o precioso traacutefego internacional na Internet e tambeacutem evitar a sobrecarga da maacutequina metalab.unc.edu. Uma lista completa dessas localidades pode ser obtida em

* http://metalab.unc.edu/LDP/mirrors.html *

Eis uma lista dos endereccedilos recomendados:

Brasil

* http://linusp.usp.br/LDP/ *

* http://www.conectiva.com.br/LDP/ *

* http://www.opensite.com.br/linux/ *

* http://taubate.valley-bbs.com.br/LDP/ *

* http://linux.unicamp.br/docs/ *

Portugal

* http://gil.di.uminho.pt/mirrors/LDP/ *

* http://deneb.cec.pt/LDP/ *

* http://ftp.dei.uc.pt/LDP/ *

* http://www.sc.uevora.pt/LDP/ *

* http://lwp.ualg.pt/docs/LDP/ *

* http://linux.global-one.pt/LDP/ *

* http://linux.ispgaya.pt/LDP/ *

* http://ae.fe.up.pt/LDP/ *

Os Linux HOWTO estatildeo disponiacuteveis em diversos formatos: texto simples,

PostScript, DVI, HTML, RTF e Lyx. O formato original eacute SGML e os demais satildeo

gerados usando o SGMLtools (maiores informaccedilotildees em http://www.sgmltools.org/).

1.3 Paacutegina oficial na WWW

A paacutegina oficial do Linux Portuguese-HOWTO, assim como os diversos arquivos de configuraccedilatildeo do sistema e programas aplicativos mencionados no texto, podem ser encontrados nos seguintes endereccedilos:

  • Brasil:

http://linusp.usp.br/casantos/ *

  • Portugal:

http://linux.fe.up.pt/howto/ *

1.4 Como enviar colaboraccedilotildees

Toda a formataccedilatildeo deste HOWTO, incluindo a numeraccedilatildeo das seccedilotildees eacute feita pelo SGMLtools. Por isso, ao enviar sugestotildees ou correccedilotildees, mencione os tiacutetulos das seccedilotildees onde as alteraccedilotildees sugeridas devem ocorrer e natildeo os nuacutemeros. Nunca refira-se a um paraacutegrafo como sendo ``o terceiro da seccedilatildeo 3.1''; cite as palavras inicias do trecho a ser modificado.

Envie sugestotildees e correccedilotildees via correio eletrocircnico em texto simples, opcionalmente com acentuaccedilatildeo no coacutedigo ISO-8859-1. Se o texto natildeo for composto em um sistema *NIX, certifique-se de usar a codificaccedilatildeo correta. Todas as mensagens recebidas seratildeo lidas, mas nem todas receberatildeo resposta direta, devido agrave falta de tempo para tanto.

Natildeo envie documentos no formato proprietaacuterio de processadores de texto nem em formato HTML (o que infelizmente parece ser o comportamento normal do Netscape Communicator e do Microsoft Outlook).

Mensagens perguntando como configurar seu modem, placa de viacutedeo ou rede natildeo seratildeo respondidas. Para esse tipo de consulta eacute aconselhaacutevel procurar uma lista de discussatildeo sobre Linux em Portuguecircs ou acompanhar os grupos de discussatildeo de Linux na USENET comp.os.linux.*.

``Flames'' teratildeo o destino costumeiro: /dev/null.


2. Informaccedilotildees gerais

2.1 Conjuntos de caracteres

Um conjunto de caracteres eacute definido de acordo com os siacutembolos constantes no alfabeto utilizado para escrita em uma ou mais liacutenguas. A Organizaccedilatildeo Internacional de Normas (International Standards Organization - ISO) padronizou atraveacutes da norma ISO-8859 vaacuterios desses conjuntos, identificados por ISO-8859-x onde o x corresponde a um determinado alfabeto. O conjunto ISO-8859 utiliza 8 bits para representar cada caracter, o que permite uma gama de 256 sinais (valores de zero a 255). Em cada um dos conjuntos, os coacutedigos zero a 127 correspondem ao conjunto ASCII (American Standard Code for Information Interchange) e os coacutedigos 160 a 255 satildeo usados para caracteres nacionais.

Para a liacutengua portuguesa, recomenda-se o uso do conjunto ISO-8859-1, que compreende o alfabeto latino e letras acentuadas usadas pelas liacutenguas do oeste da Europa e Ameacuterica. Este conjunto de caracteres tambeacutem eacute frequentemente chamado de Latin-1 ou ISO Latin-1.

Um padratildeo mais recente eacute o Unicode, definido pela norma ISO-10646, que permite definir caracteres cuja representaccedilatildeo interna no computador utiliza mais de um byte (ou octeto na nomenclatura ISO). Todas as versotildees mais recentes de sistemas Unix suportam Unicode (ou pelo menos seus fabricantes alegam suportar).

Aleacutem dos caracteres alfanumeacutericos e sinais de acentuaccedilatildeo, eacute possiacutevel tambeacutem gerar sinais semigraacuteficos para desenho de linhas e bordas. Esses sinais podem aproveitar coacutedigos natildeo utilizados pelo conjunto oficial, tornando-os natildeo portaacuteveis.

O Linux foi desenhado internamente de modo a facilitar a sua faacutecil configuraccedilatildeo e extensatildeo em tempo de execuccedilatildeo, natildeo constituindo o tratamento do teclado e fontes de caracteres excepccedilatildeo. Ele possui uma implementaccedilatildeo ``niacutevel 1'' do padratildeo Unicode. Maiores detalhes podem ser encontrados nos manuais do Linux, que podem ser lido com os comandos

man unicode man utf-8 man iso_8859_1 man ascii

mas antes disso certifique-se de que o man estaacute configurado corretamente, conforme mostrado na seccedilatildeo Man, groff, troff.

2.2 Modo texto versus Sistema de Janelas X

Alguns sistemas operativos, tais como MacOS, Microsoft Windows e NeXT, possuem interfaces graacuteficas proacuteprias. No Linux, assim como na maioria dos sistemas compatiacuteveis com Unix, eacute de uso corrente um ambiente graacutefico criado para ser ``multiplataforma'': o X Window System, que tambeacutem foi projetado para suportar diversos conjuntos de caracteres, idiomas e formatos de teclado, mas ainda natildeo suporta totalmente o padratildeo Unicode e sim uma extensatildeo do ISO-8859.

A rigor o X Window System natildeo eacute uma interface graacutefica com o usuaacuterio, mas a combinaccedilatildeo de um protocolo de comunicaccedilatildeo com uma interface com programas aplicativos (API) sobre a qual se construiacuteram vaacuterias interfaces graacuteficas. Tanto o protocolo quanto o Sistema de Janelas definem um conjunto de mecanismos e natildeo poliacuteticas (elementos caracteriacutesticos da poliacutetica de uma Interface Graacutefica com o Usuaacuterio satildeo menus, bototildees e caixas de diaacutelogo). O uso do termo ``XWindows eacute incorreto e deve ser evitado, dando-se preferecircncia ao nome geneacuterico ``X.

Existem muitas semelhanccedilas entre os dois ambientes. Ambos se baseiam em padrotildees internacionais para definiccedilatildeo de conjuntos de caracteres. Tanto no X quanto no console do Linux pode-se definir uma tecla chamada Compose cujo pressionamento seguido de duas outras geraraacute o caracter correspondente. Assim sendo, o pressionamento da sequumlecircncia compose-,-c geraraacute um c cedilhado.

O tratamento do console eacute feito diretamente pelo sistema operativo e aplicaccedilotildees comuns natildeo se envolvem com o processamento dos coacutedigos de varredura do teclado, recebendo um caracter ou uma sequumlecircncia deles ao ser pressionada cada tecla, de tal sorte que tendo sido corretamente configurados o teclado e a fonte de caracteres pouco mais se tem a fazer.

O X possui uma arquitetura muito diferente: tanto o teclado quanto a(s) tela(s) -- pode haver mais de uma tela -- satildeo controlados por uma aplicaccedilatildeo especial chamada servidor X. O pressionamento de uma tecla gera uma mensagem (chamada de evento) que eacute passada pelo servidor X agrave aplicaccedilatildeo cliente. Haacute um programa muito uacutetil chamado xev que permite observar cada evento a ele transmitido. Cliente e servidor se comunicam via rede usando um conjunto de regras chamado protocolo X e podem rodar em maacutequinas diferentes. A maacutequina onde roda o servidor eacute chamada estaccedilatildeo de trabalho ou terminal X e a maacutequina onde roda a aplicaccedilatildeo (programa cliente) tambeacutem eacute chamada de cliente.

Foge ao escopo deste texto a discussatildeo mais profunda do tratamento de eventos no X. Para maiores informaccedilotildees, sugere-se a consulta aos documentos mencionados na seccedilatildeo Leituras recomendadas, mas eacute importante esclarecer que o evento enviado pelo servidor ao cliente natildeo conteacutem o coacutedigo numeacuterico da tecla, chamado keycode na terminologia do X. Ao inveacutes disso, eacute enviado um siacutembolo, chamado keysymbol ou keysym, obtido pela consulta a uma tabela de conversatildeo mantida na memoacuteria do servidor. Esta tabela pode ser modificada total ou parcialmente a qualquer momento por meio de requisiccedilotildees definidas no protocolo X.

Existe um programa chamado xmodmap capaz de ler um arquivo contendo uma tabela de conversatildeo keycode-->keysym e enviaacute-la, tambeacutem na forma de mensagens no protocolo X, ao servidor. Eacute responsabilidade do cliente e natildeo do servidor interpretar o keysym, o que significa que a aplicaccedilatildeo deve saber esperar mais um caracter ao receber uma ``tecla morta'' para compor uma letra acentuada.

Desde a revisatildeo 5 do X existe na bibliotaca de funccedilotildees (Xlib) um mecanismo sofisticado de suporte agrave geraccedilatildeo de caracteres em diversos coacutedigos. A funccedilatildeo de tratamento de entrada de texto que jaacute existia nas versotildees anteriores, chamada XLookupString, entretanto, natildeo processa as sequumlecircncias de acentos e letras de modo transparente agraves aplicaccedilotildees. Ao inveacutes disso foi incluiacutedo um meacutetodo de composiccedilatildeo usando contextos de entrada (input contexts) por meio das funccedilotildees !XmbLookupString? e !XwcLookupString?, cujo uso eacute responsabilidade da aplicaccedilatildeo -- ou do seu programador, melhor dizendo -- mesmo no caso da tecla Compose. Isto deve-se so fato de o X Consortium ter chegado agrave conclusatildeo de que o sistema de mapeamento de teclas natildeo tratava de forma satisfatoacuteria toda a imensa variedade de liacutenguas escritas nas vaacuterias partes do mundo. Deste modo, decidiu-se que o ``peso'' relativo agrave gestatildeo do teclado fosse transferido para as aplicaccedilotildees X, o que cria uma dificuldade quando usamos aquelas mais antigas, que natildeo usam o novo meacutetodo de tratar a entrada.

Por essas razotildees eacute normalmente mais difiacutecil conseguir acrescentar suporte agrave geraccedilatildeo de caracteres acentuados em aplicativos que rodam sob o X, principalmente quando natildeo se possui o coacutedigo fonte. Aplicativos feitos para rodar apenas em modo texto, tais como vi e minicom dependeratildeo totalmente dos recursos do emulador de terminal em uso quando rodando em uma janela do X. Se for usada uma versatildeo atual do xterm ou rxvt o emulador faraacute o tratamento correto dos acentos.

O francecircs Thomas Quinot, cansado de esperar uma soluccedilatildeo melhor para o problema da acentuaccedilatildeo no X, resolveu implementar uma modificaccedilatildeo para a Xlib proposta por Andreacute D. Balsa, que adiciona suporte agrave acentuaccedilatildeo direta conforme mostrado na seccedilatildeo Contornando os limites do X. Isso permite usar aplicaccedilotildees como xfig ou xedit sem que seja necessaacuterio alteraacute-las. O truque parece funcionar apenas para caracteres do coacutedigo ISO-8859-1 mas eacute suficiente para o Portuguecircs e outras liacutenguas. Como bem observa Balsa, a longo prazo todos os programas deveratildeo ser modificados para usar os novos recursos do X, mas como a longo prazo estaremos todos mortos a soluccedilatildeo de curto prazo de Quinot torna-se bastante atraente...


3. Configuraccedilatildeo do console (modo texto)

O documento de referecircncia sobre a configuraccedilatildeo do console do Linux eacute o Keyboard and Console HOWTO, de Andries Brouwer, que pode ser encontrado nos repositoacuterios do LDP. Conforme laacute descrito, a configuraccedilatildeo da fonte de caracteres e mapa de teclado eacute feita usando o pacote KBD, encontrado em todas as distribuiccedilotildees de Linux.

3.1 Mapas de teclado

Cada tecla do PC possui um coacutedigo numeacuterico. Ao pressionarmos uma delas o processador controlador do teclado envia ao computador esse coacutedigo de varredura, tambeacutem conhecido como scancode, junto com um sinal de que a tecla foi pressionada ou solta. As sequumlecircncias de eventos satildeo entatildeo processadas pelo driver de teclado e armazenadas em uma fila de caracteres que eacute lida pelas aplicaccedilotildees por meio da chamada de funccedilotildees do sistema operativo.

Um mapa de teclado eacute um arquivo de texto que estabelace as correspondecircncias entre o scancode de tecla e o caracter (ou sequumlecircncia de caracteres) a gerar quando ela for pressionada, chamado keycode. Por exemplo:

  1. atribuiccedilatildeo da tecla '-' do teclado numeacuterico agrave tecla com coacutedigo 74

keycode 74 = KP_Subtract

  1. atribuiccedilatildeo da tecla '4' do teclado numeacuterico agrave tecla com coacutedigo 75

keycode 75 = KP_4

  1. etc...

keycode 76 = KP_5 # tecla 5 keycode 77 = KP_6 # tecla 6 keycode 78 = KP_Add # soma keycode 79 = KP_1 # tecla 1 keycode 80 = KP_2 # tecla 2

Aleacutem das teclas alfabeacuteticas, numeacutericas e de siacutembolos, existem outras chamadas modificadoras que permitem gerar coacutedigos que natildeo correspondem a nenhum sinal graacutefico: Shift Control Alt e Meta. Esta uacuteltima normalmente natildeo eacute encontrada em teclados de PCs, apenas em estaccedilotildees de trabalho de fabricantes como Sun, SGI, HP e Digital (eles natildeo gostam de ser chamados de ``DEC). O editor de texto Emacs usa muito a tecla Meta''.

O arquivo de mapa permite tambeacutem especificar teclas especiais chamadas ``teclas mortas (deadkeys''). Quando pressionadas elas natildeo resultam no aparecimento de um caracter na tela, limitando-se a alterar o comportamento da tecla pressionada a seguir para que, por exemplo, ao se digitar um __ seguida de um a__, seja gerado um `atilde'.

3.2 Mapas de traduccedilatildeo de tela

Um mapa de traduccedilatildeo de tela permite especificar qual o caracter X a ser exibido na tela, quando um programa deseja exibir um caracter Y. Desta forma, poderiacuteamos fazer com que ao escrever o caracter com o coacutedigo do c-cedilhado na tela, fosse na realidade exibido um outro caracter de coacutedigo diferente mas cuja imagem na nossa fonte de caracteres correspondesse agrave imagem de um c-cedilhado.

Este mapeamento eacute necessaacuterio apenas quando queremos usar uma fonte cujos caracteres natildeo possuem coacutedigos diretamente correspondentes aos do conjunto usado no mapa de teclado.

3.3 Comandos do pacote KBD

; Loadkeys:

Permite carregar um mapa de teclado. Por exemplo, o comando a seguir carrega o mapa armazenado no arquivo portugal.map.

loadkeys /usr/lib/kbd/keytables/portugal.map

; Setfont:

Permite o carregamento de uma fonte de caracteres de tela, possibilitando a alteraccedilatildeo das fontes utilizadas em modo de texto. O comando a seguir, por exemplo, iraacute carregar uma fonte com o conjunto Latin-1:

setfont lat1u-16.psf

; Showfont:

mostra todos os caracteres existentes na fonte que estaacute atualmente em uso no console. O X tambeacutem tem um comanto chamado showfont, que serve para mostrar as caracteriacutesticas de uma determinada fonte, mas natildeo os caracteres em si. Para esta uacuteltima finalidade se usa o comando xfd. Se o programa showfont do pacote KBD for invocado em um emulador de terminal X, como xterm, ele geraraacute um erro ``GIO_SCRNMAP: Invalid argument'', mas natildeo provocaraacute nenhum dano. ; Mapscr:

Permite carregar um mapa de traduccedilatildeo de tela. Suponhamos que exista o arquivo /etc/portugal.trad. Se executarmos o comando

mapscrn /etc/portugal.trad

entatildeo a partir deste momento as traduccedilotildees laacute definidas seratildeo usadas. ; Loadunimap:

Carrega um mapa de traduccedilatildeo de Unicode para a fonte de tela. O mapa padratildeo, chamado ``def.uni'' considera que estamos usando a fonte normal do IBM-PC. Este comando natildeo eacute necessaacuterio quando usamos uma fonte com caracteres definidos no padratildeo Unicode, pois o programa setfont carrega automaticamente a tabela de mapeamento adequada. O comando a seguir carregaraacute o mapa de traduccedilatildeo para as fontes latin-1:

loadunimap lat1

3.4 Carregamento de uma fonte de caracteres

O pacote KBD conteacutem dois tipos de fontes com codificaccedilatildeo latin-1:

  • as que jaacute possuem uma tabela de mapeamento unicode, carregada

automaticamente pelo programa setfont. Estas fontes tecircm nomes lat1u-*.psf; *

  • as que natildeo possuem tabela de mapeamento. Neste caso eacute preciso carregar

uma com o programa loadunimap. Estas tecircm nomes lat1-*.psf (o ``u'' indica Unicode). *

Nas versotildees mais novas do KBD os arquivos satildeo comprimidos com gzip. Eacute preciso carregar uma fonte que tenha os caractres latinos acentuados no padratildeo ISO 8859-1 e tambeacutem os siacutembolos semigraacuteficos. As fontes de nome iso01.* natildeo possuem esses siacutembolos. A fonte mais recomendada eacute a lat1u-16.psf.

As versotildees mais antigas do pacote KBD mantinham essas fontes no diretoacuterio /usr/lib/kbd/consolefonts, que foi trocado depois da versatildeo 0.92 por /usr/share/consolefonts. Dependendo da sua distribuiccedilatildeo e do quanto ela esteja atualizada o diretoacuterio poderaacute ser um ou outro.

Slackware

Foi criado o script /etc/rc.d/rc.font, contendo o seguinte:

  1. /bin/sh

#

  1. /etc/rc.d/rc.font

#

  1. Seleciona uma das fontes de caracteres disponiveis em
  2. /usr/lib/kbd/consolefonts.

# setfont lat1u-16.psf

  1. O comando a seguir eacute totalmente desnecessaacuterio
  2. com a fonte lat1u-16.psf.
  3. loadunimap lat1u
  4. Remova o comentaacuterio da linha abaixo se estiver usando uma fonte sem
  5. tabela de mapeamento de Unicode para tela:
  6. loadunimap lat1

Debian

Edite o arquivo /etc/kbd/config e coloque uma linha contendo

CONSOLE_FONT=lat1u-16.psf

esse arquivo eacute processado pelo script /etc/rc.boot/kbd. Execute-o para ativar a nova fonte sem ter que dar ``reboot''. Lembre-se sempre: Linux natildeo eacute Windows!

Red Hat

Edite o arquivo /etc/sysconfig/i18n e veja se conteacutem o seguinte:

LANG=pt_BR LINGUAS=pt_BR LC_CTYPE=ISO-8859-1 LC_ALL=pt_BR SYSFONT=lat1u-16 SYSTERM=linux-lat

Conectiva Red Hat Linux

Se vocecirc selecionar a liacutengua correta durante a instalaccedilatildeo natildeo haacute nada mais a fazer. A configuraccedilatildeo eacute feita extatamente como do Red Hat.

S.u.S.E.

Edite o arquivo /etc/rc.config e procure uma linha que comeccedila com ``FONT='' (linha 64, em minha maacutequina com S.u.S.E. veratildeo 5.6) e coloque

FONT=lat1u-16.psf

Edite os scripts boot.setup e single contidos no diretoacuterio /etc/rc.d. Procure a linha contendo o comando /usr/bin/loadunimap e remova-a ou ponha no seu iniacutecio um ``#'' para deixaacute-la como comentaacuterio. Veja comentaacuterios sobre este comando na seccedilatildeo Carregamento de uma fonte de caracteres.

Testando a fonte

Experimente algumas teclas como ``,.|!"#$%&/()=?'', etc. e use o comando showfont para mostrar a fonte em uso.

3.5 Carregando um mapa de teclado

A seguir eacute necessaacuterio carregar o mapa de teclado adequado. Ateacute a versatildeo 0.92 do pacote KBD esses mapas ficavam no diretoacuterio /usr/lib/kbd/keytables passando mais tarde para /usr/share/keytables. Dependendo da distribuiccedilatildeo vocecirc teraacute um diretoacuterio ou outro. Os mapas para diversos tipos de teclados satildeo apresentados mais adiante.

Slackware.

Foi criado o script /etc/rc.d/rc.keyboard, contendo o seguinte:

  1. /bin/sh

#

  1. /etc/rc.d/rc.keyboard

#

  1. Seleciona um dos mapas de teclado disponiacuteveis no diretoacuterio
  2. /usr/lib/kbd/keytables

# loadkeys abnt2

e acrescentei as seguintes linhas ao /etc/rc.d/rc.S, imediatamente antes do tratamento do /etc/rc.d/rc.keyboard:

  1. Carrega uma fonte de caracteres se existe um script rc.font.

if [ -x /etc/rc.d/rc.font?; then /etc/rc.d/rc.font start fi

  1. Carrega um mapa de teclado se existe um script rc.keyboard.

if [ -x /etc/rc.d/rc.keyboard?; then /etc/rc.d/rc.keyboard start fi

Debian.

Certifique-se de ter instalado o pacote kbd e depois faccedila o seguinte:

  • copie os arquivos com os mapas de teclado fornecidos (veja a seccedilatildeo

Ficheiros necessaacuterios) para o diretoacuterio /usr/share/keytables/. Natildeo eacute necessaacuterio descomprimi-los; *

  • copie o mapa correspondente ao seu teclado para o arquivo

/etc/kbd/default.map.gz. *

  • rode o script /etc/init.d/keymaps.sh.

*

Red Hat.

Certifique-se de ter instalado o pacote kbd. Copie os arquivos com os mapas de teclado fornecidos (veja a seccedilatildeo Ficheiros necessaacuterios) para o diretoacuterio /usr/lib/kbd/keytables/ (ou /usr/lib/kbd/keymaps/i386/qwerty/, a pertir do Red Hat 5.2). Natildeo eacute necessaacuterio descomprimi-los.

Edite o arquivo /etc/sysconfig/keyboard e coloque o nome do mapa a usar na variaacutevel KEYTABLE, como por exemplo

KEYTABLE="abnt2"

Conectiva Red Hat Linux.

O CRHL jaacute vem com os mapas de teclado para Portuguecircs. Se vocecirc selecionou o teclado correto durante a instalaccedilatildeo, natildeo haacute mais nada a fazer. Caso contraacuterio, edite o arquivo /etc/sysconfig/keyboard e coloque

KEYTABLE="nome"

Onde ``nome eacute br-abnt2, pt ou us-acentos'' caso o desenho do seu teclado seja ABNT-2, portuguecircs ou americano.

S.u.S.E..

Certifique-se de ter instalado o pacote kbd. Copie os arquivos com os mapas de teclado fornecidos (veja a seccedilatildeo Ficheiros necessaacuterios) para o diretoacuterio /usr/lib/kbd/keytables/. Natildeo eacute necessaacuterio descomprimi-los.

Descomprima o mapa de teclado adequado, copiando para o arquivo /etc/default.keytab, usando por exemplo um comando como

zcat /usr/lib/kbd/keytables/pt.map.gz > /etc/default.keytab

Testando o teclado

Experimente pressionar a tecla c-cedilhado (se o teclado natildeo tem esta tecla, digite 'c). Verifique se todas as letras acentuadas, maiuacutesculas e minuacutesculas satildeo geradas corretamente e aparecem na tela. Se aparecer algum caracter estranho verifique se carregou o mapa de teclado e a fonte de caracteres corretos, pois provavelmente uma dessas operaccedilotildees foi mal sucedida.

Se ao inveacutes de c-cedilha minuacutesculo aparecer um maiuacutesculo eacute provaacutevel que uma tabela de mapeamento Unicode incorreta esteja a ser carregada. Este problema ocorreraacute na distribuiccedilatildeo S.u.S.E. se natildeo se fizerem as alteraccedilotildees nos scripts do sistema mencionadas anteriormente.

3.6 Verificando erros

Mas, e se alguns dos caracteres continuarem a natildeo aparecer? Bem, antes de mais nada verifique se a fonte e o mapa de teclado adequados foram carregados. Um caso especial eacute quando queremos usar uma fonte que natildeo segue a codificaccedilatildeo ISO Latin-1 (eacute o caso da fonte padratildeo do console do PC). Teriacuteamos entatildeo de convencer a tela a mostrar os caracteres certos em cada caso.

Poderiacuteamos recorrer ao comando mapscrn. O arquivo com a tabela de traduccedilatildeo teria no entanto de ser criado por noacutes, seguindo um processo moroso de tentativa e erro ateacute encontrar o caracter cuja imagem desejaacutevamos. Ou, de uma forma mais faacutecil, poderiacuteamos usar o comando showfont.

Se usarmos a fonte de caracteres correta, o uso deste uacuteltimo comando seraacute desnecessaacuterio. Eacute ateacute recomendaacutevel que natildeo se use tal recurso, pois embora ele permita criar uma tabela de caracteres ``personalizada'' em um computador, seraacute difiacutecil que um documento acentuado produzido nessa maacutequina possa ser lido em outra que natildeo tenha a mesma configuraccedilatildeo.


4. Biblioteca de funccedilotildees libc e aplicativos GNU

A biblioteca padratildeo de funccedilotildees do Linux suporta Internacionalizaccedilatildeo e Localizaccedilatildeo segundo o padratildeo POSIX (Portable Operating System Interface). Trata-se de uma norma estabelecida pelo IEEE (Institute of Electrical and Electronics Engineers) para intercomunicaccedilatildeo entre diferentes sistemas operativos. Existe tambeacutem um padratildeo estabelecido pelo ANSI (American National Standards Institute) para a linguagem de programaccedilatildeo C que permite escrever programas com suporte internacional.

4.1 Configurando o suporte internacional

Resumidamente, podemos dizer que as funccedilotildees que tratam informaccedilotildees dependentes da liacutengua ou do paiacutes podem ter seu comportamento modificado, bastando para tanto estabelecer algumas variaacuteveis de ambiente. E que funccedilotildees satildeo essas? Podemos citar as de formataccedilatildeo de datas, valores monetaacuterios e mensagens de erro do sistema. Se vocecirc natildeo sabe o que eacute uma variaacutevel de ambiente, sugiro que leia o manual com o comando

man environ

O padratildeo POSIX permite usar diversas variaacuteveis de configuraccedilatildeo, cada uma delas definindo o tratamento dado a um tipo de informaccedilatildeo, a saber

; LC_COLLATE:

Define regras para comparaccedilatildeo entre caracteres no alfabeto local. Por exemplo, a letra `atilde' deve ser tratada como idecircntica ao `a' no Portuguecircs quando ordenamos alfabeticamente.

; LC_CTYPE:

Define regras para comparaccedilatildeo entre caracteres maiuacutesculos e minuacutesculos. Se estivermos trabalhando com o coacutedigo ASCII, sabemos que o coacutedigo numeacuterico de uma letra minuacutescula eacute 32 a mais do que a maiuacutescula correspondente, mas para uma letra acentuada esta regra natildeo eacute vaacutelida!

; LC_MONETARY:

Muda o comportamento das funccedilotildees de formataccedilatildeo de valores monetaacuterios e permite descobrir, por exemplo, o siacutembolo da moeda local, ou se usa ponto ou viacutergula como separador de milhares e de casas decimais.

; LC_MESSAGES:

Estabelece a liacutengua em que as mensagens seratildeo apresentadas e como eacute uma resposta afirmativa ou negativa (S/N).

; LC_NUMERIC:

Estabelece o comportamento das funccedilotildees de leitura/escrita de valores numeacutericos permitindo, por exemplo que usemos a viacutergula decimal.

; LC_TIME:

Define a formataccedilatildeo de datas e horas.

; LC_ALL:

Define de uma soacute vez todas as categorias. Se usarmos LC_ALL, natildeo precisaremos definir nenhuma das outras, a natildeo ser que queiramos um comportamento diferente para aquele iacutetem especiacutefico.

; LANG:

Define de uma soacute vez todas as categorias, se LC_ALL natildeo estiver definida. Tambeacutem eacute usada pelo comando man para compor os caminhos pelos quais ele procuraraacute as paacuteginas do manual. Veja as observaccedilotildees a respeito desta variaacutevel nas seccedilotildees Locale, Locale e Locale.

Maiores informaccedilotildees podem ser obtidas no manual do sistema com o comando

man 7 locale

O `7' no comando anterior eacute necessaacuterio para evitar confusatildeo com uma funccedilatildeo homocircnima da linguagem Perl. Note que as configuraccedilotildees acima afetam, em princiacutepio, apenas as funccedilotildees disponiacuteveis na biblioteca de funccedilotildees da linguagem C. Na praacutetica, todos os programas que rodam em Linux usam aquela biblioteca, mas o sistema operativo natildeo provecirc, cataacutelogos de mensagens em diversas liacutenguas para todos os programas.

A identificaccedilatildeo da liacutengua e do local eacute feita por dois coacutedigos de duas letras, separados por um sinal ``_. Se omitirmos o coacutedigo de paiacutes, assume-se o paiacutes padratildeo para a liacutengua informada, mas deve haver um cataacutelogo correspondente. Deste modo, o coacutedigo ``pt_PT significa Portuguecircs de Portugal, enquanto ``pt_BR'' significa Portuguecircs do Brasil. Escolher uma combinaccedilatildeo liacutengua/local basta entatildeo colocar em seu arquivo /etc/profile uma linha contendo

LC_ALL="pt_PT" export LC_ALL

Usuaacuterios brasileiros devem usar ``pt_BR ao inveacutes de ``pt_PT. Teste o resultado com os comandos a seguir (/inexistente eacute o nome de um arquivo que natildeo existe):

echo !AacuteEacuteIacuteOacuteUacute? | tr 'upper:?' 'lower:?' tar tf /inexistente ls -l / date cal 1 1999

O resultado do primeiro deveraacute ser ``aacuteeacuteiacuteoacuteuacute. Os comandos tar e ls devem retornar mensagens em Portuguecircs e cal deve mostrar um calendaacuterio de janeiro de 1999, com do se te qu qu se saacute'' no cabeccedilalho dos dias da semana.

Na distribuiccedilatildeo Debian, certifique-se de ter instalado o pacote ``locales, que pertence ao grupo ``admin. O nome do arquivo que conteacutem o pacote (na versatildeo 2.0 da distribuiccedilatildeo) eacute locales_2.0.7t-1.deb e em meu CD estaacute no diretoacuterio debian/main/binary-i386/admin.

4.2 Problemas com a libc 5

Ateacute meados de 1997 todas as distribuiccedilotildees de Linux usavam a mesma biblioteca libc, que estava na versatildeo 5, desenvolvida a partir de uma versatildeo mais antiga da libc do projeto GNU. Esta biblioteca possuia suporte muito limitado agrave internacionalizaccedilatildeo e normalmente nenhum dos cataacutelogos de locais era incluiacutedo na distribuiccedilatildeo, ficando o inglecircs como liacutengua padratildeo.

A versatildeo 6 da libc do Linux baseia-se na versatildeo 2 da libc do projeto GNU. O suporte agrave internacionalizaccedilatildeo foi muito melhorado, aleacutem de incluir outros atributos que natildeo interessam para os fins deste HOWTO. Se sua distribuiccedilatildeo for a Debian versatildeo 2, Red Hat versatildeo 5 ou qualquer outra que use a nova libc, entatildeo natildeo haacute mais nada a fazer aleacutem do descrito na seccedilatildeo anterior.

Mas se vocecirc usa uma distribuiccedilatildeo ainda baseada na libc 5 (Slackware, Caldera 1.x ou uma versatildeo mais antiga de Debian ou Red Hat) eacute preciso instalar a coleccedilatildeo de locais. Natildeo tente copiar a coleccedilatildeo de uma distribuiccedilatildeo mais recente, pois os formatos dos arquivos satildeo incompatiacuteveis. Pegue na paacutegina do Portuguese HOWTO o arquivo locales-pt.tgz. Para instalaacute-lo na distribuiccedilatildeo Slackware, basta (como usuaacuterio root) usar o comando

installpkg locales-pt.tgz

e para outras distribuiccedilotildees use o comando

tar xzf locales-pt.tgz -C /

Verifique se haacute dois subdiretoacuterios do /usr/share/locale chamados pt_BR e pt_PT. Basta entatildeo configurar a variaacutevel de ambiente LC_ALL, como jaacute descrito.


5. Configuraccedilatildeo do X

Quando o servidor X estaacute ativo, ele coloca o teclado do computador em um modo de operaccedilatildeo chamado raw (cru), em oposiccedilatildeo ao modo normal, chamado cooked (isto mesmo: cozido). No modo raw o sistema operativo natildeo processa sequumlecircncias acento-letra. O servidor X eacute uma daquelas raras aplicaccedilotildees que, por dever de ofiacutecio, tem que tratar o teclado ``em baixo niacutevel''.

O X vem equipado com um utilitaacuterio destinado agrave configuraccedilatildeo do teclado, chamado xmodmap, que cumpre uma funccedilatildeo correspondente agrave do comando loadkeys, ou seja, lecirc um arquivo de mapa de teclado do X, expecificando as equivalecircncias entre os keycodes e respectivos keysymbols.

Eis um excerto deste arquivo:

keycode 47 = ccedilla Ccedilla dead_acute dead_doubleacute keycode 48 = masculine ordfeminine dead_circumflex dead_caron keycode 49 = backslash bar notsign keycode 50 = Shift_L keycode 51 = dead_tilde dead_circumflex dead_grave dead_breve

Observem que, ao contraacuterio do loadkeys, o xmodmap natildeo possui um diretoacuterio padratildeo onde o arquivo eacute procurado.

A configuraccedilatildeo do X natildeo interfere de forma alguma com a configuraccedilatildeo do modo de texto. De facto, eacute possiacutevel ter o seu X bem configurado, e no entanto natildeo ter realizado qualquer tipo de configuraccedilatildeo ao modo de texto, e vice-versa. Outro ponto importante de se observar eacute que os coacutedigos numeacutericos das teclas no X natildeo correspondem aos do console. A tecla Backspace, por exemplo, tem o nuacutemero 14 no console, e 22 no X (em um computador do tipo IBM-PC).

As versotildees 3.2 e posteriores do XFree86 permitam definir dead-keys, mas

  • seu tratamento eacute responsabilidade da aplicaccedilatildeo, conforme visto na seccedilatildeo

Modo texto versus Sistema de Janelas X. Haacute modos de contornar esta limitaccedilatildeo e tornar o tratamento de dead-keys transparente agraves aplicaccedilotildees, conforme mostrado na seccedilatildeo Contornando os limites do X.

Dividimos a configuraccedilatildeo em duas partes: Uma que deve ser feita antes do login do usuaacuterio e outra depois.

5.1 Configuraccedilatildeo do xinit

Junto com este documento satildeo fornecidos vaacuterios mapas de teclado para uso no X. Para automatizar o processo de configuraccedilatildeo do teclado basta copiar o arquivo adequado para o diretoacuterio /usr/X11R6/lib/X11/xinit, onde normalmente ficam os arquivos de iniacutecio da seccedilatildeo de trabalho no X. Na distribuiccedilatildeo Slackware esse diretoacuterio eacute um link simboacutelico para /var/X11R6/lib/xinit e na Debian e na Red Hat para /etc/X11/xinit.

Nas distribuiccedilotildees Slackware e Red Hat, verifique se no referido diretoacuterio existe um arquivo chamado .Xmodmap. Se existir, copie o Xmodmap.<alguma-coisa> para ele, ou faccedila um link. Normalmente o arquivo de configuraccedilatildeo xinitrc possui os comandos para carregaacute-lo automaticamente. Veja o seguinte trecho:

  1. /bin/sh

  2. $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $

userresources=$HOME/.Xresources usermodmap=$HOME/.Xmodmap sysresources=/usr/X11R6/lib/X11/xinit/.Xresources sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

  1. merge in defaults and keymaps

if [ -f $sysresources?; then xrdb -merge $sysresources fi if [ -f $sysmodmap?; then xmodmap $sysmodmap fi

Na distribuiccedilatildeo Debian o mapa de teclado padratildeo do X eacute /etc/X11/Xmodmap, basta copiar o mapa desejado para aquele arquivo. Ele seraacute carregado pelo xinitrc, que por sua vez eacute um link simboacutelico para /etc/X11/Xsession, sempre que iniciar a seccedilatildeo de trabalho do usuaacuterio.

5.2 Configuraccedilatildeo do XDM

Existe ainda um pequeno problema: no meu computador, por exemplo, o sistema carrega diretamente o X ao dar boot e o login eacute feito pelo X Display Manager (xdm). Como o xdm faz o login antes de iniciar a seccedilatildeo de trabalho, o mapa de teclado natildeo seraacute carregado, o que pode criar problemas se o usuaacuterio usa caracteres como ``['' ou ``?'' em sua senha, pois nos teclados ABNT-2 e portuguecircs esses siacutembolos satildeo gerados por teclas cujos coacutedigos numeacutericos natildeo satildeo os mesmos do teclado americano.

Eacute preciso fazer uma pequena alteraccedilatildeo no arquivo de configuraccedilatildeo Xsetup_0. Esse arquivo deve estar no diretoacuterio /usr/X11R6/lib/X11/xdm, que na Slackware eacute um link simboacutelico para /var/X11R6/lib/xdm e /etc/X11/xdm na Debian e -- sujeito a confirmaccedilatildeo -- !RedHat. Eis

  • conteuacutedo completo desse arquivo:
  1. /bin/sh

#

  1. /usr/X11R6/lib/X11/xdm/Xsetup_0

# sysresources=/usr/X11R6/lib/X11/xinit/.Xresources sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

  1. merge in defaults and keymaps

if [ -r $sysresources?; then xrdb -merge $sysresources fi if [ -r $sysmodmap?; then xmodmap $sysmodmap fi xconsole -geometry 480x130-0-0 -daemon -notify -verbose -exitOnFail

A distribuiccedilatildeo Debian tem um Xsetup_0 um pouco diferente, em /etc/X11/xdm/Xsetup_0, mas basta acrescentar-lhe o seguinte:

sysmodmap=/etc/X11/Xmodmap sysresources=/etc/X11/Xresources if [ -f $sysresources?; then xrdb -merge $sysresources fi if [ -f $sysmodmap?; then xmodmap $sysmodmap fi

Se no seu computador o login do usuaacuterio tambeacutem for feito sempre via xdm, natildeo eacute necessaacuterio mexer no xinitrc, como mostrado na seccedilatildeo anterior, jaacute que o mapa de teclado seraacute carregado antes do iniacutecio na seccedilatildeo do usuaacuterio.

5.3 Compose

Uma das coisas mais importantes a definir quando vamos utilizar acentuaccedilatildeo por meio de dead-keys eacute o conjunto de regras de composiccedilatildeo. Essas regras determinam, por exemplo que a composiccedilatildeo do caracter ' com a letra e geraraacute um eacute.

Ao contraacuterio do console, no qual podemos definir as regras de composiccedilatildeo no proacuteprio mapa de teclado, no X essas regras satildeo colocadas no arquivo /usr/X11R6/lib/X11/locale/???/Compose, onde ??? eacute a codificaccedilatildeo em uso (no nosso caso, iso8859-1).

Para facilitar o uso dos mapas para teclados que natildeo tecircm o c-cedilhado, como o US+ (veja adiante) eacute conveniente definirmos uma nova regra de composiccedilatildeo, permitindo que o Ccedil seja gerado pela sequumlecircncia 'C. Se natildeo fizermos isso, seremos obrigados a digitar <dead_cedilla-C>, sedo o dead_cedilla produzido pela combinaccedilatildeo AltGR-=, o que natildeo eacute nada confortaacutevel. Aleacutem disso, no teclado americano somos obrigados a usar as aspas duplas para gerar o trema.

O arquivo Compose fornecido foi feito procurando imitar ao maacuteximo o comportamento do console e possui as seguintes facilidades para geraccedilatildeo de caracteres:

  • C-cedilha: tecla Ccedil ou sequumlecircncia

<acento-agudo>-C *

  • Apoacutestrofo: tecla ' ou sequumlecircncias

<acento-agudo>-<acento-agudo> e <acento-agudo>-<espaccedilo> *

  • Acento grave: sequumlecircncias <acento-grave>-<acento-grave> e

<acento-grave>-<espaccedilo> *

  • Aspas: tecla " ou sequumlecircncia <trema>-<trema>

*

  • Trema: sequumlecircncia <trema>-<espaccedilo>

*

  • Til: sequumlecircncias <til>-<espaccedilo> e <til>-<til>

*

  • Circumflexo: sequumlecircncias <circumflexo>-<espaccedilo> e

<circumflexo>-<circumflexo> *

Para incluirmos as novas regras, basta aplicar uma alteraccedilatildeo agrave definiccedilatildeo original. O arquivo Compose.patch pode ser obtido via WWW na paacutegina do Portuguese HOWTO. Para aplicar a atualizaccedilatildeo, copie-o para o diretoacuterio /usr/X11R6/lib/X11/locale/iso8859-1/, faccedila uma coacutepia de reserva do Compose original e invoque o utilitaacuterio patch:

cp -p Compose Compose.backup patch < Compose.patch

Caso vocecirc prefira natildeo aplicar o ``patch'', um arquivo Compose pronto tambeacutem eacute fornecido. Lembre-se de fazer coacutepia do original antes de substituiacute-lo!

5.4 Locale

Para os usuaacuterios brasileiros, pode haver mais uma alteraccedilatildeo a fazer no X. Conforme vimos na seccedilatildeo Biblioteca libc, uma variaacutevel de ambiente (LANG ou LC_ALL) configura o suporte internacional existente na biblioteca de funccedilotildees padratildeo do sistema (libc). A biblioteca de funccedilotildees do X (Xlib) usa a variaacutevel LANG para identificar a liacutengua em uso mas ateacute a revisatildeo 6.3, na qual eacute baseado o XFree86, natildeo era incluiacuteda a combinaccedilatildeo ``pt_BR, correspondente a Portuguecircs/Brasil. Como resultado, cada vez que executarmos um aplicativo X com LC_ALL definido como ``pt_BR ele emitiraacute a mensagem ``Warning: locale not supported by Xlib, locale set to C''.

Para incluir o local pt_BR no X11R6.3 basta alterar trecircs arquivos existentes no diretoacuterio /usr/X11R6/lib/X11/locale. Pegue o arquivo Xlocale.patch via WWW na paacutegina do Portuguese HOWTO. Para aplicar a atualizaccedilatildeo, copie-o para o diretoacuterio /usr/X11R6/lib/X11/locale, faccedila uma coacutepia de reserva dos arquivos a serem alterados e invoque o utilitaacuterio patch:

cp -p compose.dir compose.dir.backup cp -p locale.alias locale.alias.backup cp -p locale.dir locale.dir.backup patch < Xlocale.patch

Caso vocecirc prefira natildeo aplicar o ``patch'', arquivos prontos tambeacutem satildeo fornecidos. Lembre-se de fazer coacutepias dos originais antes de substituiacute-los!

Em setembro de 1998 o fix-2 da revisatildeo 6.4 do X Window System incluiu oficialmente o suporte ao local pt_BR. Infelizmente neste mesmo fix-2 foi introduzida uma falha em uma das funccedilotildees de tratamento de input contexts da Xlib que provoca violaccedilotildees de acesso agrave memoacuteria. Uma das aplicaccedilotildees afetadas eacute o processador de textos LyX. Uma correccedilatildeo provavelmente seraacute incluiacuteda no fix-4. O X11R6.4 deveraacute ser a base para a versatildeo 4 do XFree86.

5.5 Geraccedilatildeo de mapas com o XKeyCaps

O programa XKeyCaps, criado por Jamie Zawinski eacute uma interface graacutefica para o xmodmap, que mostra na tela o desenho de um teclado e permite modificar interativamente os siacutembolos gerados por cada tecla e gerar automaticamente o arquivo .Xmodmap correspondente.

Ele pode ser obtido via WWW em http://www.jwz.org/xkeycaps/ e, a partir da versatildeo 2.43, jaacute incoropra tambeacutem suporte para o desenho brasileiro (ABNT2), uma contribuiccedilatildeo de Andre Gerhard.

5.6 Contornando os limites do X

Conforme foi explicado na seccedilatildeo Modo texto versus Sistema de Janelas X, o tratamento de acentos deve ser feito pela aplicaccedilatildeo, mas ainda haacute muitos programas que natildeo levam isto em consideraccedilatildeo, tais como Netscape Navigator/Communicator e Nedit. Como natildeo eacute possiacutevel modificar muitos deles, eacute preciso encontrar outro tipo de soluccedilatildeo.

Alteraccedilatildeo da biblioteca Xlib

Linux, assim como a maioria dos sistemas operacionais modernos, usa um sistema de viacutenculo de programas a bibliotecas de funccedilotildees chamado ``ligaccedilatildeo dinacircmica (dynamic binding''). Deste modo, podemos modificar o comportamento de um programa alterando uma dessas bibliotecas. Maiores informaccedilotildees sobre este tema pode ser obtida nos manuais do Linux com os comandos

man ld.so man ldconfig man ldd man dlopen

Thomas Quinot criou uma alteraccedilatildeo para a biblioteca de funccedilotildees do X (Xlib) introduzindo o tratamento de acentos na funccedilatildeo XLookupString, Tudo que se tem a fazer eacute substituir o arquivo contendo esta biblioteca por outro, que pode ser obtido via internet no endereccedilo

http://web.fdn.fr/tquinot/dead-keys.en.html

Existem duas versotildees do arquivo, uma para sistemas onde as bibliotecas do X suportam o uso seguro de threads (Debian 2.x, Red Hat 5.x, etc.) e outra para os sistemas que natildeo possuem tal atributo (Slackware, Caldera 1.x). Se vocecirc natildeo sabe o que satildeo threads natildeo se preocupe com isso, mas saiba que eles permitem criar um programa capaz de se dividir em sub-processos que rodam concorrentemente em um computador. Para analisar sua Xlib rode o seguinte comando:

nm --dynamic /usr/X11R6/lib/libXext.so.6|grep _Xglobal_lock

Se aparecer ``U _Xglobal_lock seu sistema suporta threads e o arquivo a obter eacute libX11-XF3.3.1-TS.tar.gz. Se natildeo aparecer, seu sistema natildeo suporta threads e o arquivo a obter eacute libX11-XF3.3.1.tar.gz. Tendo obtido o arquivo, copie-o para um diretoacuterio temporaacuterio e extraia seu conteuacutedo. Mova o arquivo /usr/X11R6/libX11.so.6.1 para outro diretoacuterio, para preservaacute-lo. Natildeo eacute suficiente renomeaacute-lo! Remova-o para um diretoacuterio cujo nome natildeo esteja contido no arquivo /etc/ld.so.conf. Depois, mova o novo arquivo para o lugar do antigo e rode o programa ldconfig'' (isto deve ser feito pelo usuaacuterio root):

cp libX11-XF3.3.1-TS.tar.gz /tmp cd /tmp tar xzf libX11-XF3.3.1-TS.tar.gz mkdir /usr/X11R6/oldlib mv /usr/X11R6/lib/libX11.so.6.1 /usr/X11R6/oldlib mv libX11.so.6.1 /usr/X11R6/lib chown root:root /usr/X11R6/lib/libX11.so.6.1 chmod 755 /usr/X11R6/lib/libX11.so.6.1 /sbin/ldconfig

Eacute aconselhaacutevel que a operaccedilatildeo seja realizada quando nenhuma aplicaccedilatildeo X estiver rodando. A seguir, edite o arquivo de configuraccedilatildeo do servidor X, chamado XF86Config. Este arquivo fica no diretoacuterio /etc (Slackware) ou /etc/X11 (Debian, Red Hat). Procure a seccedilatildeo ``Keyboard e inclua a opccedilatildeo ``!XkbDisable?, conforme mostrado a seguir:

Section "Keyboard" Protocol "Standard"

XkbDisable?

EndSection?

A opccedilatildeo !XkbDisable? inabilita a extensatildeo XKEYBOARD do servidor X, o que neste caso serve para sinalizar agrave funccedilatildeo XLookupString que ela deve tratar os acentos. Se quisermos voltar ao comportamento normal, basta retirar a opccedilatildeo do XF86Config.

Configure o mapa de teclado do X conforme explicado nas seccedilotildees anteriores deste documento. Para testar o resultado, rode o programa xedit e digite alguns caracteres acentuados.

Alteraccedilatildeo no kernel do Linux

Esta seccedilatildeo eacute baseada em contribuiccedilatildeo enviada por Bruno Barberi Gnecco e na documentaccedilatildeo do diacrd. Podem haver ainda alguns erros e se algueacutem os detectar, por favor avise-me.

Seguindo a regra geral do mundo *nix, existe sempre mais de um modo se resolver o mesmo problema. Conforme vimos anteriormente, existem dois modos de operaccedilatildeo do teclado, chamados raw e cooked. Estes modos de operaccedilatildeo podem ser mudados com o programa kbd_mode, integrante do pacote kbd, o que natildeo eacute recomendaacutevel fazer a natildeo ser para restaurar o estado do console apoacutes um desastre com o servidor X, por exemplo. No modo raw o kernel natildeo processa os diacriacuteticos (acentos).

Cedric Adjih criou uma alteraccedilatildeo para o kernel que permitia tratar os acentos mesmo em modo raw, inicialmente voltada para o teclado de desenho francecircs. Eneacuteas Queiroz, Andreacute D. Balsa e Claudemir Todo Bom fizeram melhorias e o adaptaram para os teclados internacional, portuguecircs e ABNT. O tratemanto de acentos eacute feito parte pelo kernel, parte por um processo que roda em retaguarda (daemon) chamado diacrd, conforme descrito a seguir:

  • Uma modificaccedilatildeo no kernel faz que todos os dados lidos do teclado

sejam redirecionados para um dispositivo especial do sistema chamado /dev/rawkbd quando o teclado estiver em modo raw. *

  • Os dados que o kernel grava no /dev/rawkbd satildeo lidos pelo

programa diacrd, que processa as sequumlecircncias acento-letra e reescreve no /dev/rawkbd os caracteres acentuados na forma de coacutedigos de varredura (scancodes) que normalmente natildeo existem no teclado. *

  • O kernel lecirc no /dev/rawkbd os coacutedigos gravados pelo

diacrd e os passa agrave aplicaccedilatildeo, que no caso eacute o servidor X. *

  • O servidor X mapeia os coacutedigos de varredura para caracteres. Um mapa de

teclado especial permite entatildeo gerar as letras acentuadas. *

O diacrd pode ser obtido via FTP anocircnimo no endereccedilo

ftp://metalab.unc.edu/pub/Linux/system/keyboards Haacute versotildees diferentes, de acordo com o tipo de teclado e, pelo menos por enquanto, natildeo se pode reconfiguraacute-lo sem recompilar. Para fazer a instalaccedilatildeo, de acordo com o arquivo ``README'', deve-se fazer o seguinte (pelo usuaacuterio root):

  • Obtenha o arquivo -.tar.gz correspondente a seu teclado. Extraia seu

conteuacutedo, o que deveraacute criar um diretoacuterio chamado diacrd-<versatildeo>. *

  • Edite o arquivo diacrd.c e remova os comentaacuterios desejados, de

acordo com suas preferecircncias. Pode-se incluir capacidade de rodar o programa xmodmap e ejetar o CD-ROM sob controle do pressionamento de uma combinaccedilatildeo de teclas. *

  • Aplique a modificaccedilatildeo no kernel. Para isto, execute o comando

``make patch-usr-src''. *

  • Crie o dispositivo /dev/rawkbd executando o comando

``make rawkbd''. *

  • Compile o diacrd e instale-o executando os comandos ``make'' e

``make install''. *

  • Compile e instale o kernel, com os comandos

cd /usr/src/linux make config make zlilo

Para maiores informaccedilotildees sobre compilaccedilatildeo/instalaccedilatildeo do kernel, leia o Kernel-HOWTO, disponiacutevel via Internet nos repositoacuterios do LDP mencionados na seccedilatildeo Onde encontrar a versatildeo mais atual. *

  • Decirc um ``reboot'' no computador. Verifique se o suporte ao dispositivo

rawkbd foi instalado com sucesso com o comando

dmesg | grep RAWKBD

Deve aparecer

RAWKBD interface for diacriticals translation enabled...

e teste o dispositivo /dev/rawkbd com o comando

printf "### TESTANDO ###" >> /dev/rawkbd

Veja na seccedilatildeo Configuraccedilatildeo do console como carregar um mapa com suporte agrave acentuaccedilatildeo. O pacote diacrd vem com um arquivo chamada usintl.map, que corresponde ao nosso us+.map. Se seu teclado natildeo for do tipo americano, use o pt.map ou abnt-2.map. *

  • Substitua o arquivo /usr/X11R6/lib/X11/xkb/keycodes/xfree86

pelo arquivo fornecido junto com o diacrd. *

  • Se tudo correr bem, rode o programa diacrd. Depois ative o X e

use o xmodmap para carregar o mapa xmodmap.diacrd. *

Se a geraccedilatildeo de acentos funcionar, eacute preciso tornar permanentes as alteraccedilotildees necessaacuterias. Pode-se fazecirc-lo incluindo a carga do diacrd no arquivo /etc/rc.d/rc.local (Slackware).

Se algum dos leitores tiver criado um script de ativaccedilatildeo do diacrd para a distribuiccedilatildeo Debian ou Red Hat, por favor envie-o para que seja incluiacutedo aqui.

Mais informaccedilotildees sobre o diacrd podem ser encontradas no ``Dead keys Mini-HOWTO'' de Claudemir Todo Bom, disponiacutevel em http://linux.unicamp.br/docs/diversos/deadkeys.html.

Comparaccedilatildeo entre as duas soluccedilotildees

Em termos de resultados praacuteticos, a Xlib modificada e o diacrd satildeo equivalentes. Haacute poreacutem algumas diferenccedilas entre as duas soluccedilotildees que merecem atenccedilatildeo.

Diacrd exige uma alteraccedilatildeo no kernel do Linux para resolver um problema que o kernel jaacute resolve, o que natildeo deixa de parecer um tanto redundante. A dependecircncia de um processo de usuaacuterio (o daemon kerneld) eacute uma desvantagem, pois se esse programa deixar de funcionar perde-se o suporte agrave acentuaccedilatildeo no X. Trata-se de uma soluccedilatildeo ainda em desenvolvimento e, segundo o conteuacutedo da documentaccedilatildeo que o acompanha, o ideal seria que todo o tratamento fosse feito pelo kernel, sem depender de outro programa.

Ateacute o momento da publicaccedilatildeo deste HOWTO, o diacrd ainda natildeo era compatiacutevel com a versatildeo 2.2 do kernel do Linux.

A soluccedilatildeo via Xlib eacute, pelo menos em teoria, totalmente transparente agraves aplicaccedilotildees e permite reconfiguraccedilatildeo em tempo de execuccedilatildeo, bastando alterar o mapa de teclado do X e as regras de composiccedilatildeo. Jaacute o diacrd precisa ser recompilado se quisermos trocar o tipo de teclado, mas eacute possiacutevel que novas versotildees incorporem algum recurso de reconfiguraccedilatildeo.

O diacrd soacute funciona no teclado do proacuteprio computador. Se quisermos usar um display remoto, seja um terminal X, seja um outro computador, natildeo teremos suporte agrave acentuaccedilatildeo. A troca da Xlib, por outro lado, enquadra-se plenamente na filosofia do X de que o servidor provecirc mecanismo, deixando a cargo da aplicaccedilatildeo a definiccedilatildeo de poliacuteticas. Exemplo da vantagem deste paradigma eacute poder usar as teacutecnicas descritas na seccedilatildeo Configuraccedilatildeo do X em outros sistemas operativos e com terminais X.

A soluccedilatildeo via Xlib parece-me mais ``limpa'' e eacute minha predileta, mas, como sempre, fica a criteacuterio do usuaacuterio ou do administrador do sistema qual alternativa escolher. De qualquer modo, sempre eacute bom lembrar qua ambas as soluccedilotildees satildeo remendos. Considerando-se a raacutepida evoluccedilatildeo que estaacute a ocorrer no campo do software livre, com o desenvolvimendo de ambientes de trabalho como KDE, GNOME e GNUStep, podemos supor que em breve nenhum desses remendos seraacute mais necessaacuterio.


6. Configuraccedilatildeo dos vaacuterios programas

6.1 Aplicativos

A maioria das aplicaccedilotildees que rodam no Unix usa algum tipo de arquivo de configuraccedilatildeo que o usuaacuterio coloca em seu diretoacuterio de trabalho (home) e cujo nome normalmente eacute .alguma-coisarc. Tanto quanto possiacutevel, tentei evitar que isso fosse necessaacuterio, pois aleacutem de dar mais trabalho ao usuaacuterio (e ao administrador da rede ;-) pode dificultar um pouco as coisas. Por exemplo, aqui no CPMet temos o diretoacuterio home compartilhado entre um servidor Alpha rodando DEC UNIX com os PCs rodando Linux via NFS (ateacute a maior parte do Linux estaacute instalada no Alpha, os PCs soacute tecircm a particcedilatildeo raiz e uma aacuterea de swap). Os arquivos podem necessitar algum ajuste dependendo da plataforma e nem todos os programas possuem flexibilidade bastante para isso.

Uma opccedilatildeo que muitos programas tambeacutem oferecem eacute especificar em uma variaacutevel de ambiente o nome do arquivo de configuraccedilatildeo ou o uso de arquivos padratildeo que normalmente ficam em um diretoacuterio /usr/lib/alguma-coisa ou /etc/alguma-coisa.

Bash (biblioteca GNU readline)

Os programas que utilizam a biblioteca GNU readline para ler a linha de comando procuram por um arquivo chamado .inputrc no diretoacuterio ``HOME'' do usuaacuterio caso natildeo exista uma variaacutevel de ambiente INPUTRC contendo o caminho para um arquivo de configuraccedilatildeo.

Coloque uma linha no seu arquivo /etc/profile contendo

INPUTRC="/etc/inputrc" export INPUTRC

e crie um arquivo /etc/inputrc contendo

set meta-flag on set convert-meta off set output-meta on

Outra alternativa eacute criar um arquivo .inputrc no diretoacuterio home do usuaacuterio com o conteuacutedo acima, mas eacute muito difiacutecil manter atualizados os arquivos de todos os usuaacuterios, principalmente quando eles satildeo muitos. Um inputrc mais completo pode ser obtido via WWW na paacutegina do Portuguese HOWTO. Ele conteacutem opccedilotildees para vaacuterios tipos de terminal e permite usar as teclas de movimento de cursor para percorrer o histoacuterico de comandos (setas para cima e para baixo); ir para o primeiro e para o uacuteltimo comandos do histoacuterico (teclas !PageUp? e !PageDown?); posicionar o cursor na linha (setas para a esquerda e direita) e posicionar o cursor no iniacutecio e no fim da linha (teclas Home e End).

Para maiores informaccedilotildees leia os manuais do bash e da biblioteca readline com os comandos

man bash man readline

Emacs

O pai de todos os editores pode ser configurado criando-se um arquivo chamado .emacs no diretoacuterio do usuaacuterio, contendo as seguintes linhas:

(set-input-mode nil nil 1) (standard-display-european t) (require 'iso-syntax)

Para tornar esta configuraccedilatildeo global, na distribuiccedilatildeo Slackware coloque os comandos no arquivo /usr/lib/emacs/site-lisp/site-start.el. Na distribuiccedilatildeo Debian o emacs executa todos os scripts contidos no diretoacuterio /etc/emacs/site-start.d ao ser carregado. Tudo que se tem a fazer eacute colocar esses comandos em um arquivo chamado, por exemplo, 01portugues-emacs.el.

Se o estimado leitor, assim como eu, natildeo se agrada do tratamento dado pelo Emacs agraves teclas de Delete, Home e End, aproveite a oportunidade e acrescente ao mesmo arquivo o seguinte:

(global-unset-key [backspace? ) (global-set-key [backspace? 'delete-backward-char) (global-unset-key [delete? ) (global-set-key [delete? 'delete-char) (define-key global-map [home? 'beginning-of-line) (define-key global-map [C-home? 'beginning-of-buffer) (define-key global-map [end? 'end-of-line) (define-key global-map [C-end? 'end-of-buffer)

Arquivos de configuraccedilatildeo prontos podem ser obtidos via WWW na paacutegina do Portuguese HOWTO. Para Slackware, haacute um site-start-emacs.el, que deve ser copiado para o diretoacuterio /usr/lib/emacs/site-lisp com o nome de site-start.el. Para Debian, haacute um 01portugues-emacs.el que deve ser copiado para o diretoacuterio /etc/emacs/site-start.d.

Certifique-se de estar usando a versatildeo 24-out-1998 ou mais recente do arquivo de mapa de teclado para o X, pois ela possui uma correccedilatildeo no tratamento das teclas modificadoras Alt e Meta, que satildeo muito usadas pelo Emacs.

flex

Especifique a opccedilatildeo -8 se o parser a gerar necessitar de ler dados de 8 bit.

Fortune

Fortune eacute aquele programa que toda vez que eacute invocado apresenta uma pequena mensagem, geralmente bem humorada. Ele eacute inspirado nos biscoitos da fortuna chineses (em inglecircs fortune cookies, daiacute o nome). Eis algumas mensagens tiacutepicas:

dROGA!!oNDE ESTA O cAPSLOCK?? Mouse natildeo encontrado, bater no gato? (S/N) Que fio eacute ess<=V++088.../NO CARRIER Quem ri por uacuteltimo estaacute conectado a 2400Bit/s.

Tudo que o programa faz eacute escolher aleatoriamente uma mensagem em um repositoacuterio mantido no diretoacuterio /usr/games/fortunes (Slackware) ou /usr/share/games/fortunes (Debian). Neste diretoacuterio existem diversos arquivos com as ``fortunas'' e um arquivo iacutendice para cada um deles, que possui a extensatildeo .dat. O formato dos arquivos eacute muito simples: cada fortuna eacute composta de uma seacuterie de linhas de texto. As fortunas satildeo separadas umas das outras por linhas contendo apenas um caracter %. Veja

  • trecho a seguir:

O que satildeo quatro pontos na parede? Four migas. Ugh! % Errar eacute humano, botar a culpa no computador eacute mais humano ainda. % Aiacute ela me disse: Ou eu ou o modem! Sinto muitas saudades dela...

Tudo que temos a fazer eacute criar um arquivo com as fortunas chamado, digamos fortunes com o formato descrito acima. Depois basta usar o programa strfile para gerar o iacutendice:

strfile fortunes

e um arquivo chamado fortunes.dat seraacute criado. Claro que se quisermos que o fortune mostre apenas mensagens em Portuguecircs, teremos que remover os arquivos existentes no diretoacuterio original. Sugiro simplesmente renomeaacute-lo para fortunes-en (de English) e criar outro vazio. Eu coletei algumas fortunas e as coloquei no arquivo fortunes-pt.tar.gz que pode ser obtido via WWW na paacutegina do Portuguese HOWTO. Natildeo esqueccedila de colocar no seu /etc/profile algumas linhas contendo uma chamada ao fortune, por exemplo

if [ -x /usr/games/fortune -a ! -e $HOME/.hushlogin?; then echo /usr/games/fortune echo fi

Uma uacuteltima informaccedilatildeo: se o nome de um arquivo termina com o sufixo

  • o o fortune soacute o consulta se for chamado com a opccedilatildeo
  • o. Esses arquivos satildeo os que conteacutem mensagens cujo conteuacutedo pode

ser considerado ofensivo por algumas pessoas, tais como

Soacute natildeo mando a sogra pro inferno, com pena do Diabo.

Claro que existem coisas muito mais ofensivas por aiacute, mas este eacute um Linux HOWTO e natildeo queremos realmente ofender ningueacutem, certo?

Ispell

Dicionaacuterios para o Portuguecircs de Portugal podem ser obtidos via WWW na paacutegina do Projecto Natura em http://www.di.uminho.pt/jj/pln/pln.html. Para o Brasil, haacute uma versatildeo compilada pelo Ueda: http://www.ime.usp.br/ueda/.

Eu gostaria de poder colocar maiores informaccedilotildees, mas ainda natildeo tenho conhecimento suficiente sobre o Ispell e natildeo posso ensinar o que natildeo sei. Preciso de ajuda aqui.

JDK (inclui ICQJava)

Esta informaccedilatildeo eacute baseada em uma mensagem da qual guardei o conteuacutedo mas natildeo o remetente. Peccedilo desculpas e espero que perdoe a falha. Natildeo testei pessoalmente a informaccedilatildeo e peccedilo que me escrevam confirmando tanto a correccedilatildeo quanto, se possiacutevel, a identidade do autor.

O JDK utiliza fontes padratildeo que natildeo suportam acentos. Isto quer dizer que letras com acentos satildeo ignoradas e, geralmente, confundem o resto do texto. Resolver isto eacute extremamente faacutecil:

  • entre no diretoacuterio jdk1.1.5/lib (no meu caso,

/jdk1.1.5/lib); *

  • copie o arquivo font.properties.hu sobrescrevendo o

font.properties atual (lembre-se de fazer backups!); *

  • entre no jdk e divirta-se! Fazendo isto, seu ICQ e todos os

aplicativos que usem o jdk estaratildeo aptos a lerem acentos! (faacutecil, natildeo?) *

Joe

Invoque o joe com a opccedilatildeo -asis na linha de comando ou altere os arquivos de configuraccedilatildeo para ativar tal opccedilatildeo. Na Slackware eles estatildeo no diretoacuterio /usr/lib/joe. Tudo que se tem a fazer eacute remover o espaccedilo em branco existente no iniacutecio de cada linha. Outra alternativa eacute acrescentar a seguinte linha ao arquivo /etc/profile:

alias joe='joe -asis'

Joe pode emular os editores Pico, emacs e !WordStar?. Um arquivo joerc estaacute disponiacutevel via WWW na paacutegina do Portuguese HOWTO, contendo configuraccedilotildees que permitem usar as teclas Home e End para movimentar o cursor para o iniacutecio e fim da linha.

Less

Coloque as seguintes linhas no seu arquivo /etc/profile:

LESS="-MM -i" LESSCHARSET="latin1" LESSKEY="/etc/lesskey" LESSOPEN='|lesspipe.sh "%s"' export LESS LESSCHARSET LESSKEY LESSOPEN

LESSKEY informa o nome de um arquivo contendo uma tabela de sequumlecircncias de caracteres geradas por cada tecla e as accedilotildees a serem tomadas pelo less. Para criar o arquivo /etc/lesskey, crie primeiro o arquivo /etc/lesskey.in contendo as seguintes linhas:

  1. Termianl ANSI (console do Linux, XTerm, etc)

\e[[1 goto-line \e[[4 goto-end \e[[5 back-screen \e[[6 forw-screen \e[[7 goto-line \e[[8 goto-end \e[[A back-line \e[[B forw-line

  1. XTerm

\eOH goto-line \eOF goto-end \e[[H goto-line \e[[F goto-end

  1. Console Sun (testado com teclados Type 4/5)

\e[[214z goto-line \e[[220z goto-end \e[[216z back-screen \e[[222z forw-screen

  1. Arquivo seguinte/anterior

:n next-file :N next-file :p prev-file

Depois ``compile-o'' usando o comando

  1. lesskey -o /etc/lesskey /etc/lesskey.in

Crie o arquivo /usr/bin/lesspipe.sh contendo

  1. /bin/sh

  2. This is a preprocessor for 'less'. It is used when this environment
  3. variable is set: LESSOPEN="|lesspipe.sh %s"

case "$1" in

  • .rpm) rpm -qilp "$1" 2>/dev/null ;;
  • .tar) tar tvvf "$1" 2>/dev/null ;;
  • .tgz | *.tar.gz | *.taz | *.tar.Z | *.tar.z)

tar tzvvf "$1" 2>/dev/null ;;

  • .tbz2 | *.tar.bz2)

bzip2 -dc "$1" | tar tvvf - 2>/dev/null ;;

  • .Z) gzip -dc "$1" 2>/dev/null ;;
  • .z) gzip -dc "$1" 2>/dev/null ;;
  • .[1-9?.gz | *.n.gz | *.man.gz)

FILE=`file -Lz "$1" | cut -d ' ' -f 2` if [ "$FILE" = "troff"?; then gzip -dc "$1" | groff -s -p -t -e -Tlatin1 -mandoc fi ;;

  • .gz) gzip -dc "$1" 2>/dev/null ;;
  • .zip) unzip -l "$1" 2>/dev/null ;;
  • .[1-9? | *.n | *.man)

FILE=`file -L "$1" | cut -d ' ' -f 2` if [ "$FILE" = "troff"?; then groff -s -p -t -e -Tlatin1 -mandoc "$1" fi ;; esac

Natildeo esqueccedila de tornaacute-lo executaacutevel:

chmod 755 /usr/bin/lesspipe.sh

Na distribuiccedilatildeo Debian jaacute existe um script /usr/bin/lesspipe (note a ausecircncia da extensatildeo .sh). Para os curiosos a respeito da referecircncia a ``*.rpm, embora na maacutequina em questatildeo se use Slackware, eacute possiacutevel ter o utilitaacuterio RPM instalado tambeacutem, o que facilita tomar ``emprestados pacotes do Red Hat, Caldera e S.u.S.E.. Existe um RPM+Slackware Mini-HOWTO que explica como fazer isso.

ls

Acrescente a seguinte linha ao arquivo /etc/profile :

alias ls="ls -N"

ou

alias ls="ls -b"

Se a sua distribuiccedilatildeo de Linux usa o GNU ls (todas as que eu conheccedilo usam) basta acrescentar ao arquivo /etc/profile ou .profile as seguintes linhas:


  1. Set up the color-ls environment variables

if

Fatal Error:

lib/CachedMarkup.php (In template 'browse' < 'body' < 'html'):257: Error: Pure virtual

lib/InlineParser.php:336: Warning: Invalid [] syntax ignored: [[ "$SHELL" = "/bin/bash" -o \ (...repeated 4 times)

  • "$SHELL" = "/bin/sh" ]


Fatal PhpWiki Error

lib/CachedMarkup.php (In template 'browse' < 'body' < 'html'):257: Error: Pure virtual