<!doctype linuxdoc system>

<!--
      Guia de Referencia para a instalacao do Teclado e Pagina
      de codigo Portuguesas.

      (c)1995 Joao Carlos Rodrigues Pereira, jcrp@caravela.di.fc.ul.pt

 -->

<!--


  0.3 - Update (14 Setembro 1995)

   * Correcoes

     * Endereco do coordenador mudou
     * Sistema de janelas X -> Sistema de janelas X (X-Window Sistem)

   * Aviso sobre a diferenca entre conf. de X e Texto, nao inter-dependentes

  0.2 - Update (3 Setembro 1995)

   * Correcoes      
       
     * Gestor de janelas X -> Sistema de janelas X 
     * LEMACS - nova entrada
     * Emacs - dados acrescentados, os anteriores eram nulos !
     * pequenas correcoes de sintaxe

  0.1 - Versao original  (1 Setembro 1995)

-->





<article>

                 <!-- *********** Cabecalho *********** -->



<title>Linux Portuguese-HOWTO
<author>Jo&atilde;o Carlos Rodrigues Pereira, <tt/jcrp@caravela.di.fc.ul.pt/
<date>v1.0, 14 September 1995

<abstract>
Este documento pretende ser um guia de refer&ecirc;ncia de
configura&ccedil;&atilde;o do <bf/Linux/ e seus programas para utiliza&ccedil;&atilde;o com o
Teclado e P&aacute;gina de C&oacute;digo Portugueses.
</abstract>


             <!-- *********** Tabela de Conteudo *********** -->

<toc>


                <!-- *********** Introducao *********** -->



<sect>Introdu&ccedil;&atilde;o
<p>
&Agrave; semelhan&ccedil;a de outras linguas faladas na europa, a lingua
portuguesa reveste-se de algumas caracter&iacute;sticas especiais, tais como
a utiliza&ccedil;&atilde;o de caracteres acentuados, que tornam o seu suporte
dificil, pouco intuitivo ou at&eacute; mesmo impossivel, por parte do
software utilizado nos nossos computadores.

As dificuldades encontradas centram-se essencialmente em torno de dois
pontos fundamentais: 
<enum>

<item> A introdu&ccedil;&atilde;o de caracteres acentuados atrav&eacute;s do teclado,
como seja a escrita de jo&tilde;ao em vez da sua forma correcta.

<item> A exibi&ccedil;&atilde;o dos mesmos no ecran do computador, o suporte
resume-se normalmente &agrave; correcta localiza&ccedil;&atilde;o das teclas, nada
mais.
</enum>

O presente <bf/HOWTO/ pretende, pois, ajudar o utilizador do
sistema <bf/Linux/ a configurar o mesmo, de modo a que dentro do
possivel(1), tanto o sistema operativo, como os programas nele
utilizados, venham a suportar o teclado portugu&ecirc;s.


(1) uma vez que existem alguns programas que n&atilde;o foram desenhados
com vista a suportar os caracteres acentuados.



                   <!-- *********** KBD *********** -->



<sect>A package KBD
<P>
O <bf/Linux/ foi desenhado internamente de modo a facilitar a sua
facil configura&ccedil;&atilde;o e exten&ccedil;&atilde;o em tempo de execu&ccedil;&atilde;o, n&atilde;o
constituindo o tratamento do teclado e fontes de caracteres
excep&ccedil;&atilde;o.

A configura&ccedil;&atilde;o do teclado &eacute; conseguida atrav&eacute;s da
possibilidade de redefini&ccedil;&atilde;o das tabelas de tradu&ccedil;&atilde;o de
caracteres e do carregamento de fontes de caracteres de ecran.

Para tal foi desenvolvida a package <bf/KBD/, que disponibiliza todo um
conjunto de <bf/comandos/ para o efeito.



             <!-- *********** Comandos da KBD *********** -->



<sect1>Comandos da package KBD
<p>
Segue-se a descri&ccedil;&atilde;o de alguns dos comandos disponibilizados pela
package <bf/KBD/.

                <!-- *********** LOADKEYS *********** -->

<sect2>Loadkeys
<p>
O comando <em/loadkeys/ permite especificar a equivalencia entre a
tecla que se pressiona no teclado e o c&oacute;digo (<tt/keycode/) que os
programas recebem.  Isto &eacute; conseguido atraves do carregamento de um
<em/mapa de teclado/.

 Por exemplo o comando 
<tscreen><verb>
  loadkeys /usr/lib/kbd/keytables/portuguese.map
</verb></tscreen>

 carrega o mapa do teclado portugues.

O que e um mapa de teclado ?  Bem, um mapa de teclado &eacute; um ficheiro
de texto onde se colocam as correspondencias entre o <em/scancode/ de uma
tecla e o seu c&oacute;digo de tecla, ou <em/keycode/.

Por exemplo :

<tscreen><verb>
// atribui&ccedil;&atilde;o da tecla '-' do teclado numerico a' tecla com co'digo 74

  keycode  74 = KP_Subtract     

// atribui&ccedil;&atilde;o da tecla '4' do teclado numerico a tecla com c&oacute;digo 75

  keycode  75 = KP_4            

// 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
</verb></tscreen>


                   <!-- *********** MAPSCRN *********** -->


<sect2>Mapscr
<p>
Alem do comando anterior que opera no sentido <em/teclado &lt;-&gt;
aplica&ccedil;&atilde;o/, temos o comando <em/mapscrn/ que opera no sentido
<em/aplica&ccedil;&atilde;o &lt;-&gt; ecran/.  Ou seja, uma aplica&ccedil;&atilde;o envia o
caracter com o c&oacute;digo 123 para o ecran, e o caracter com o c&oacute;digo 200
ser&aacute; mostrado.

 isto, &eacute; claro, se existir no ficheiro de tradu&ccedil;&atilde;o de caracteres a
seguinte linha:

<tscreen><verb>
  123 200
</verb></tscreen>

Este assunto ser&aacute; desenvolvido mais a frente.


                   <!-- *********** SETFONT *********** -->


<sect2>Setfont
<p>
O comando <em/setfont/ permite o carregamento de uma <em/fonte/ de
caracteres de ecran, possibilitando a altera&ccedil;&atilde;o das fontes
utilizadas em modo de texto.

Voltarei a este assunto mais tarde.



           <!-- *********** Configuracao do LINUX *********** -->



<sect>Configura&ccedil;&atilde;o do sistema operativo <bf/Linux/
<p>
Feitas as primeiras apresenta&ccedil;&otilde;es vamos agora ver como se procede
&aacute; configura&ccedil;&atilde;o do <bf/Linux/, tanto em modo de terminal como
no Sistema de Janelas X.


                <!-- *********** Modo Texto *********** -->


<sect1>Modo texto
<p>
Primeiro de tudo h&aacute; que dizer ao <bf/Linux/ qual a
localiza&ccedil;&atilde;o das v&aacute;rias teclas segundo a disposi&ccedil;&atilde;o do
teclado portugu&ecirc;s.  Tal &eacute; conseguido atrav&eacute;s da utiliza&ccedil;&atilde;o
do comando <em/loadkeys/.

 O comando a executar &eacute;:

<tscreen><verb>
  loadkeys portugal.map
</verb></tscreen>

 Experimente algumas teclas como ",.&verbar;!"&num;&dollar;%&amp;/()=?", etc...

OK, agora j&aacute; temos as teclas no sitio certo (incluindo !&num;&dollar;%&amp;/()=?'{}
etc) mas, e os <tt/c-cedilhados/, a com <tt/til/ e outros caracteres
acentuados ?

Bem, felizmente para n&oacute;s, o ficheiro de mapa de teclado permite tamb&eacute;m
especificar teclas especiais chamadas <em/"deadkeys"/.  <em/Deadkeys/ s&atilde;o
teclas, que, quando presionadas n&atilde;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 <bf/MSDOS/) pressionar a tecla <tt/til/ seguida da tecla
<em/a/, o que provoca o aparecimento de um <em/a-com-til/ (&atilde;) !!!

  Eis a linha do ficheiro "portugal.map" respons&aacute;vel pela
defini&ccedil;&atilde;o da tecla <tt/c-cedilhado/:

<tscreen><verb>
// atribui&ccedil;&atilde;o da tecla <tt/c-cedilhado/ &aacute; tecla com c&oacute;digo 39

keycode  39 = +ccedilla        Ccedilla           
</verb></tscreen>

Antes de prosseguir peco-lhe que introduza o seguinte comando:

<tscreen><verb>
echo -n -e "\\033(K"
</verb></tscreen>

Este comando limita-se a pedir ao terminal que entre em modo de <em/"8
bits"/, modo este necess&aacute;rio a exibi&ccedil;&atilde;o de caracteres especiais
tais como o <tt/c-cedilhado/, <tt/a-com-til/ etc.

Experimente pressionar a tecla <tt/c-cedilhado/. Em principio dever&aacute;
ter aparecido um <tt/c-cedilhado/ ou um caracter estranho.  No segundo
caso, tente n&atilde;o se preocupar com isso, este assunto ser&aacute; tratado mais
&aacute; frente.  Experimente outras teclas com acentos.  Sim, &eacute; 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&atilde;o eram exactamente o
que estaria &aacute; espera.

O que acontece, &eacute; que, a fonte de caracteres corrente poder&aacute; n&atilde;o
possuir todos os caracteres de que necessitamos.  Vamos entao mudar a
fonte de caracteres activa, executando o comando:

<tscreen><verb>
setfont latin1u-16
</verb></tscreen>

E eis que aparecem os caracteres que todos nos esperavamos.

Mas, e se alguns dos caracteres continuassem a n&atilde;o aparecer ?  Bem,
neste caso, teriamos de <em/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&atilde;o possuia a <em/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&aacute;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
<tt/c-cedilhado/ no ecran, fosse na realidade exibido um outro
caracter cuja <em/imagem/ na nossa fonte de caracteres correspondesse a
imagem de um <tt/c-cedilhado/.

O comando a ser executado seria :

<tscreen><verb>
  mapscrn &lt;nome do ficheiro de tabela de tradu&ccedil;&atilde;o&gt;
</verb></tscreen>

O ficheiro com a tabela de tradu&ccedil;&atilde;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 <em/showfont/.

No entanto nas vers&otilde;es de software por mim testado, o uso deste
ultimo comando revelou-se desnecess&aacute;rio.


                 <!-- *********** Janelas X *********** -->


<sect1>O Sistema de Janelas X (X-Window)
<p>
O Sistema de Janelas X vem equipado com um utilit&aacute;rio destinado &agrave;
configura&ccedil;&atilde;o do teclado, chamado <em/xmodmap/.

O comando <em/xmodmap/ cumpre uma fun&ccedil;&atilde;o identica ao comando <em/loadkeys/,
ou seja, l&ecirc; um ficheiro de mapa de teclado de X, expecificando as
equivalencias entre os <tt/scancodes/ e respectivos <tt/keycodes/.

 Eis um excerto deste ficheiro:

<tscreen><verb>
  keycode 47 = Ccedilla
  keycode 48 = masculine ordfeminine
  keycode 51 = Dtilde Dcircumflex_accent
</verb></tscreen>

De notar que, a configura&ccedil;&atilde;o do Sistema de Janelas X n&atilde;o interfere 
de forma alguma com a configura&ccedil;&atilde;o do Modo de Texto.
De facto, &eacute; possivel ter o seu X bem configurado, e no entatanto n&atilde;o ter 
realizado qualquer tipo de configura&ccedil;&atilde;o ao Modo de Texto, e vice-versa.

<bf>Nota</bf> : Na vers&atilde;o XFree 3.1.x n&atilde;o &eacute; possivel a utiliza&ccedil;&atilde;o
de <em>dead-keys</em> ao contrario da vers&atilde;o XFree86 2.1.x.
Isto deve-se so facto de o "X Consortium" ter chegado &agrave; conclus&atilde;o de que 
o sistema actual de mapeamento de teclas n&atilde;o tratava de forma satisfat&oacute;ria
toda a imensa variedade de linguas escritas nas v&aacute;rias partes do mundo.
Deste modo, decidiu-se que o "peso" relativo &agrave; gest&atilde;o do teclado
fosse transferido para as aplica&ccedil;&otilde;es X.
Desta forma o suporte ou n&atilde;o de <em>dead-keys</em> numa aplica&ccedil;&atilde;o 
depende apenas dela, podendo assumir v&aacute;rios aspectos :

<itemize>
<item>A aplica&ccedil;&atilde;o n&atilde;o implementa a fun&ccedil;&atilde;o desejada
<item>A op&ccedil;&atilde;o correcta n&atilde;o esta <tt>ligada</tt> no seu ficheiro de configura&ccedil;&atilde;o
<item>A aplica&ccedil;&atilde;o n&atilde;o foi compilada com o referido suporte
<item>Outras ...
</itemize>



           <!-- *********** Ficheiros de Configuracao *********** -->


<sect1>Os ficheiros de configura&ccedil;&atilde;o
<p>
At&eacute; aqui tudo bem, mas decerto que n&atilde;o teremos de executar todos
estes comandos no inicio de cada sess&atilde;o de trabalho, pois n&atilde;o ?

A resposta &eacute; obviamente: N&atilde;o !<p>
 Para nos poupar este trabalho existem uma s&eacute;rie de ficheiros de
configura&ccedil;&atilde;o onde deveremos colocar a descri&ccedil;&atilde;o dos comandos a
executar.  Os ficheiro s&atilde;o :
<p>
<bf>/etc/rc.d/rc.keymap</bf> - Ficheiro lido quando do boot do sistema operativo, 
servindo para especificar os comandos de inicializa&ccedil;&atilde;o das v&aacute;rias consolas de modo texto.
<p>
Segue-se a descri&ccedil;&atilde;o das linhas que deveram ser incluidas neste
(se n&atilde;o tiverem sido incluidas pela instala&ccedil;&atilde;o base do sistema).

<tscreen><verb>
-------- 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" &gt; $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/ &lt;qualquer coisa&gt;

---------- FIM ---------
</verb></tscreen>

<bf>/etc/rc.d/rc.font</bf> - Neste ficheiro deveram ser especificados os
comandos relativos ao carregamento das fontes de modo texto.

<tscreen><verb>
-------- INICIO --------
#!/bin/sh
# especificacao da fonte a carregar
#
setfont /usr/lib/kbd/consolefonts/lat1u-16
---------- FIM ---------
</verb></tscreen>


Alem das altera&ccedil;&otilde;es a executar nos ficheiros de configura&ccedil;&atilde;o
atr&aacute;s mencionados, ter&aacute; tamb&eacute;m de copiar o ficheiro
<tt/.xmodmap/ para a sua <em/dir&eacute;ctoria HOME/ para que o Sistema de
Janelas X fique correctamente configurado.
<p>


             <!-- *********** Os Varios Programas *********** -->



<sect>Configura&ccedil;&atilde;o dos v&aacute;rios programas 
<p>
<sect1>bash
<p>
Crie um ficheiro chamado <tt/.inputrc/ na sua directoria HOME contendo
as seguintes linhas :

<tscreen><verb>
-------- INICIO --------
set meta-flag on
set convert-meta off
set output-meta on
---------- FIM ---------
</verb></tscreen>

Esta altera&ccedil;&atilde;o ir&aacute; tamb&eacute;m afectar todos os programas que
utilizem a biblioteca <tt/readline/ da GNU.


<Sect1>csh / tcsh (vers&atilde;o 6.04 ou superior)
<p>
Inclua as seguintes linhas no ficheiro <tt>/etc/profile</tt> :
<tscreen><verb>
export LANG=C
export LC_CTYPE=iso_8859_1
</verb></tscreen>

ou inclua as seguintes linhas no ficheiro <tt/.login/ :
<tscreen><verb>
setenv LANG=C
setenv LC_CTYPE=iso_8859_1
</verb></tscreen>

<sect1>Joe
<p>
Acrescente a seguinte linha ao ficheiro <tt>/etc/profile</tt> :
<tscreen><verb>
alias joe='joe -asis'
</verb></tscreen>

<sect1>less
<p>
Acrescente a seguinte linha ao ficheiro <tt>/etc/profile</tt> :
<tscreen><verb>
export LESSCHARSET=latin1
</verb></tscreen>

<sect1>ls
<p>
Acrescente a seguinte linha ao ficheiro <tt>/etc/profile</tt> :
<tscreen><verb>
alias ls="ls -N"
</verb></tscreen>
ou
<tscreen><verb>
alias ls="ls -8"
</verb></tscreen>


<sect1>mc
<p>
No menu <tt/"Options"/ sub-menu <tt/"Configuration"/ ligue a op&ccedil;&atilde;o <tt/"8 bit clean"/.

<sect1>nn
<p>
Acrescente a seguinte linha ao ficheiro <tt>~/.nn/init</tt> :
<tscreen><verb>
set data-bits 8
</verb></tscreen>

<sect1>nroff / groff
<p>
Ao invocar o comando <tt/nroff/ ou <tt/groff/ acrescente a op&ccedil;&atilde;o <tt/-Tlatin1/
Por exemplo :
<tscreen><verb>
groff -Tlatin1 -mandoc $1 | less
</verb></tscreen>

<sect1>emacs
<p>
Coloque no seu ~/.emacs as linhas :

<tscreen><verb>

  (standard-display-european t)
  (require 'iso-syntax) 

</verb></tscreen>

<sect1>lemacs (lucid emacs)
<p>
Coloque no seu ~/.emacs as linhas :

<tscreen><verb>

  (load-file "/usr/lib/lemacs-19.27.1/lisp/x11/x-iso8859-1.el")
  (load-file "/usr/lib/lemacs-19.27.1/lisp/x11/x-compose.el")

</verb></tscreen>

<sect1>flex
<p>
Especifique a op&ccedil;&atilde;o <bf/-8/ se o <em/parser/ a gerar necessitar de
ler dados de 8 bit.


<sect1>FTP (File Transfer Protocol
<p>
Cuidados a ter quando se enviam ficheiros atrav&eacute;s de FTP.
Como sabemos, o modo de transferencia de ficheiros binarios &eacute; o
<tt/binary/, sendo o modo <tt/ascii/ utilizado para textos.  No
entanto, o modo de tranf&ecirc;rencia <tt/ascii/ remove o oitavo bit de
cada caracter transmitido, o que ter&aacute; como consequencia a perda de
todos os caracteres acentuados. Desta forma &eacute; aconselhado o envio de
documenta&ccedil;&atilde;o em modo <tt/binary/ de forma a manter a integridade
da mesma.

<sect1>E-MAIL
<p>
O mesmo(*) tipo de restri&ccedil;&otilde;es se aplica ao envio de documentos
contendo caracteres acentuados, atrav&eacute;s de E-MAIL.

Para tal dever&aacute; utilizar um programa de mail, que suporte o formato
MIME (Multipurpose Internet Mail Extensions), formato este que permite 
o envio de documenta&ccedil;&atilde;o em modo 8 bits.
Exemplos de programas de correio eletronico com suporte para MIME,
s&atilde;o o Eudora e o Pine.


(*) Embora isto n&atilde;o aconte&ccedil;a en todos os sistemas op. em uso na internet,
bastar&aacute; que o correio enviado passe no seu trajecto por um sistema que
n&atilde;o suporte 8 bits de informa&ccedil;&atilde;o para que o nosso documento seja 
deturpado.


             <!-- *********** Ficheiros Necessarios *********** -->


<sect>Ficheiros necess&aacute;rios
<p>

<sect1> xmodmap ( &tilde;/.xmodmap)
<p>
<tscreen><verb>
--------------------------------------------------------------------------

clear    shift
clear    lock
clear    control
clear    mod1
clear    mod2
clear    mod3
clear    mod4
clear    mod5
! charset "latin-1"
keycode   9 = Escape Escape
keycode  10 = 1 exclam atilde
keycode  11 = 2 quotedbl at
keycode  12 = 3 numbersign otilde
keycode  13 = 4 dollar acircumflex
keycode  14 = 5 percent ocircumflex
keycode  15 = 6 ampersand ecircumflex
keycode  16 = 7 slash braceleft
keycode  17 = 8 parenleft bracketleft
keycode  18 = 9 parenright bracketright
keycode  19 = 0 equal braceright
keycode  20 = apostrophe question backslash
keycode  21 = braceleft braceright
keycode  22 = BackSpace BackSpace BackSpace
keycode  23 = Tab Tab
keycode  24 = q Q atilde
keycode  25 = w W otilde
keycode  26 = e E eacute
keycode  27 = r R ecircumflex
keycode  28 = t T
keycode  29 = y Y
keycode  30 = u U uacute
keycode  31 = i I iacute
keycode  32 = o O oacute 
keycode  33 = p P otilde
keycode  34 = plus asterisk ocircumflex
! keycode  35 = acute grave
keycode  35 = Dacute_accent Dgrave_accent acute grave
keycode  36 = Return
keycode  37 = Control_L
keycode  38 = a A aacute
keycode  39 = s S agrave
keycode  40 = d D atilde
keycode  41 = f F acircumflex
keycode  42 = g G
keycode  43 = h H
keycode  44 = j J
keycode  45 = k K
keycode  46 = l L
keycode  47 = ccedilla Ccedilla
keycode  48 = slash at
keycode  49 = backslash bar
keycode  50 = Shift_L
! keycode  51 = asciitilde asciicircum
keycode  51 = Dtilde Dcircumflex_accent asciitilde asciicircum
keycode  52 = z Z
keycode  53 = x X
keycode  54 = c C
keycode  55 = v V
keycode  56 = b B
keycode  57 = n N
keycode  58 = m M
keycode  59 = comma semicolon
keycode  60 = period colon
keycode  61 = minus underscore
keycode  62 = Shift_R
keycode  63 = KP_Multiply
keycode  64 = Alt_L Meta_L
keycode  65 = space space
keycode  66 = Caps_Lock
keycode  67 = F1 F11
keycode  68 = F2 F12
keycode  69 = F3 F13
keycode  70 = F4 F14
keycode  71 = F5 F15
keycode  72 = F6 F16
keycode  73 = F7 F17
keycode  74 = F8 F18
keycode  75 = F9 F19
keycode  76 = F10 F20
keycode  77 = Num_Lock
! keycode  78 = Scroll_Lock
keycode  78 = Multi_key
keycode  79 = KP_7
keycode  80 = KP_8
keycode  81 = KP_9
keycode  82 = KP_Subtract
keycode  83 = KP_4
keycode  84 = KP_5
keycode  85 = KP_6
keycode  86 = KP_Add
keycode  87 = KP_1
keycode  88 = KP_2
keycode  89 = KP_3
keycode  90 = KP_0
! keycode  92 = X386Sys_Req
keycode  94 = less greater bar
keycode  95 = F11 F11
keycode  96 = F12 F12
keycode 108 = KP_Enter
keycode 109 = Control_R
keycode 112 = KP_Divide
keycode 113 = Mode_switch
keycode 114 = Break
keycode 110 = Find
keycode  98 = Up
keycode  99 = Prior
keycode 100 = Left
keycode 102 = Right
keycode 104 = Down
keycode 105 = Next
keycode 106 = Insert
keycode  136 = KP_7
keycode  137 = KP_8
keycode  138 = KP_9
keycode  139 = KP_4
keycode  140 = KP_5
keycode  141 = KP_6
keycode  142 = KP_1
keycode  143 = KP_2
keycode  144 = KP_3
keycode  145 = KP_0
keycode  146 = KP_Decimal
keycode  147 = Home
keycode  148 = Up
keycode  149 = Prior
keycode  150 = Left
keycode  151 = Begin
keycode  152 = Right
keycode  153 = End
keycode  154 = Down
keycode  155 = Next
keycode  156 = Insert
keycode  157 = Delete
! add Mod1 = Alt_L
! add Mod2 = Mode_switch
add     shift   = Shift_L Shift_R
add     lock    = Caps_Lock
add     control = Control_L Control_R
add     mod1    = Alt_L
add     mod2 = Mode_switch
-----------------------------------------------------------------------------
</verb></tscreen>
<sect1> port.map
<p>
<tscreen><verb>
------------------------------------------------------------------------------
charset "latin-1"
keycode   0 =
keycode   1 = Escape           Escape          
	alt     keycode   1 = Meta_Escape     
keycode   2 = one              exclam          
	alt     keycode   2 = Meta_one        
keycode   3 = two              quotedbl               at              
	control keycode   3 = nul             
	alt     keycode   3 = Meta_two        
keycode   4 = three            numbersign      
	control keycode   4 = Escape          
	alt     keycode   4 = Meta_three      
keycode   5 = four             dollar           dollar          
	control keycode   5 = Control_backslash
	alt     keycode   5 = Meta_four       
keycode   6 = five             percent         
	control keycode   6 = Control_bracketright
	alt     keycode   6 = Meta_five       
keycode   7 = six              ampersand     
	control keycode   7 = Control_asciicircum
	alt     keycode   7 = Meta_six        
keycode   8 = seven            slash        braceleft       
	control keycode   8 = Control_underscore
	alt     keycode   8 = Meta_seven      
keycode   9 = eight            parenleft         bracketleft     
	control keycode   9 = Delete          
	alt     keycode   9 = Meta_eight      
keycode  10 = nine             parenright        bracketright    
	alt     keycode  10 = Meta_nine       
keycode  11 = zero             equal       braceright      
	alt     keycode  11 = Meta_zero       
keycode  12 = apostrophe      question       backslash       
	control keycode  12 = Control_underscore
	alt     keycode  12 = Meta_minus      
keycode  13 = braceleft            braceright            
	alt     keycode  13 = Meta_equal      
keycode  14 = Delete           Delete          Delete
	alt     keycode  14 = Meta_Delete     
keycode  15 = Tab              Tab             
	alt     keycode  15 = Meta_Tab        
keycode  16 = +q                Q               
	control keycode  16 = Control_q       
	alt     keycode  16 = Meta_q          
keycode  17 = +w                W               
	control keycode  17 = Control_w       
	alt     keycode  17 = Meta_w          
keycode  18 = +e                E               
	control keycode  18 = Control_e       
	alt     keycode  18 = Meta_e          
keycode  19 = +r                R               
	control keycode  19 = Control_r       
	alt     keycode  19 = Meta_r          
keycode  20 = +t                T               
	control keycode  20 = Control_t       
	alt     keycode  20 = Meta_t          
keycode  21 = +y                Y               
	control keycode  21 = Control_y       
	alt     keycode  21 = Meta_y          
keycode  22 = +u                U               
	control keycode  22 = Control_u       
	alt     keycode  22 = Meta_u          
keycode  23 = +i                I               
	control keycode  23 = Tab             
	alt     keycode  23 = Meta_i          
keycode  24 = +o                O               
	control keycode  24 = Control_o       
	alt     keycode  24 = Meta_o          
keycode  25 = +p                P               
	control keycode  25 = Control_p       
	alt     keycode  25 = Meta_p          
keycode  26 = plus      asterisk       
	control keycode  26 = Escape          
	alt     keycode  26 = Meta_bracketleft
keycode  27 = dead_acute      dead_grave
	control keycode  27 = Control_bracketright
	alt     keycode  27 = Meta_bracketright
keycode  28 = Return          
	alt     keycode  28 = Meta_Control_m  
keycode  29 = Control         
keycode  30 = +a                A               
	control keycode  30 = Control_a       
	alt     keycode  30 = Meta_a          
keycode  31 = +s                S               
	control keycode  31 = Control_s       
	alt     keycode  31 = Meta_s          
keycode  32 = +d                D               
	control keycode  32 = Control_d       
	alt     keycode  32 = Meta_d          
keycode  33 = +f                F               
	control keycode  33 = Control_f       
	alt     keycode  33 = Meta_f          
keycode  34 = +g                G               
	control keycode  34 = Control_g       
	alt     keycode  34 = Meta_g          
keycode  35 = +h                H               
	control keycode  35 = BackSpace       
	alt     keycode  35 = Meta_h          
keycode  36 = +j                J               
	control keycode  36 = Linefeed        
	alt     keycode  36 = Meta_j          
keycode  37 = +k                K               
	control keycode  37 = Control_k       
	alt     keycode  37 = Meta_k          
keycode  38 = +l                L               
	control keycode  38 = Control_l       
	alt     keycode  38 = Meta_l          
keycode  39 = +ccedilla        Ccedilla           
	alt     keycode  39 = Meta_semicolon  
keycode  40 = slash		at
	control keycode  40 = Control_g       
	alt     keycode  40 = Meta_apostrophe 
keycode  41 = backslash        bar 
	control keycode  41 = nul             
	alt     keycode  41 = Meta_grave      
keycode  42 = Shift           
keycode  43 = dead_tilde      dead_circumflex
	control keycode  43 = Control_backslash
	alt     keycode  43 = Meta_backslash  
keycode  44 = +z                Z               
	control keycode  44 = Control_z       
	alt     keycode  44 = Meta_z          
keycode  45 = +x                X               
	control keycode  45 = Control_x       
	alt     keycode  45 = Meta_x          
keycode  46 = +c                C               
	control keycode  46 = Control_c       
	alt     keycode  46 = Meta_c          
keycode  47 = +v                V               
	control keycode  47 = Control_v       
	alt     keycode  47 = Meta_v          
keycode  48 = +b                B               
	control keycode  48 = Control_b       
	alt     keycode  48 = Meta_b          
keycode  49 = +n                N               
	control keycode  49 = Control_n       
	alt     keycode  49 = Meta_n          
keycode  50 = +m                M               
	control keycode  50 = Control_m       
	alt     keycode  50 = Meta_m          
keycode  51 = comma            semicolon            
	alt     keycode  51 = Meta_comma      
keycode  52 = period           colon         
	alt     keycode  52 = Meta_period     
keycode  53 = minus            underscore        
	control keycode  53 = Delete          
	alt     keycode  53 = Meta_slash      
keycode  54 = Shift           
keycode  55 = KP_Multiply     
keycode  56 = Alt             
keycode  57 = space            space           
	control keycode  57 = nul             
	alt     keycode  57 = Meta_space      
keycode  58 = Caps_Lock       
keycode  59 = F1               F11              Console_13      
	control keycode  59 = F1              
	alt     keycode  59 = Console_1       
keycode  60 = F2               F12              Console_14      
	control keycode  60 = F2              
	alt     keycode  60 = Console_2       
keycode  61 = F3               F13              Console_15      
	control keycode  61 = F3              
	alt     keycode  61 = Console_3       
keycode  62 = F4               F14              Console_16      
	control keycode  62 = F4              
	alt     keycode  62 = Console_4       
keycode  63 = F5               F15              Console_17      
	control keycode  63 = F5              
	alt     keycode  63 = Console_5       
keycode  64 = F6               F16              Console_18      
	control keycode  64 = F6              
	alt     keycode  64 = Console_6       
keycode  65 = F7               F17              Console_19      
	control keycode  65 = F7              
	alt     keycode  65 = Console_7       
keycode  66 = F8               F18              Console_20      
	control keycode  66 = F8              
	alt     keycode  66 = Console_8       
keycode  67 = F9               F19              Console_21      
	control keycode  67 = F9              
	alt     keycode  67 = Console_9       
keycode  68 = F10              F20              Console_22      
	control keycode  68 = F10             
	alt     keycode  68 = Console_10      
keycode  69 = Num_Lock        
keycode  70 = Scroll_Lock      Show_Memory      Show_Registers  
	control keycode  70 = Show_State      
	alt     keycode  70 = Scroll_Lock     
keycode  71 = KP_7            
	alt     keycode  71 = Ascii_7         
keycode  72 = KP_8            
	alt     keycode  72 = Ascii_8         
keycode  73 = KP_9            
	alt     keycode  73 = Ascii_9         
keycode  74 = KP_Subtract     
keycode  75 = KP_4            
	alt     keycode  75 = Ascii_4         
keycode  76 = KP_5            
	alt     keycode  76 = Ascii_5         
keycode  77 = KP_6            
	alt     keycode  77 = Ascii_6         
keycode  78 = KP_Add          
keycode  79 = KP_1            
	alt     keycode  79 = Ascii_1         
keycode  80 = KP_2            
	alt     keycode  80 = Ascii_2         
keycode  81 = KP_3            
	alt     keycode  81 = Ascii_3         
keycode  82 = KP_0            
	alt     keycode  82 = Ascii_0         
keycode  83 = KP_Period       
	altgr   control keycode  83 = Boot            
	control alt     keycode  83 = Boot            
keycode  84 = Last_Console    
keycode  85 =
keycode  86 = less             greater          bar             
	alt     keycode  86 = Meta_less       
keycode  87 = F11              F11              Console_23      
	control keycode  87 = F11             
	alt     keycode  87 = Console_11      
keycode  88 = F12              F12              Console_24      
	control keycode  88 = F12             
	alt     keycode  88 = Console_12      
keycode  89 =
keycode  90 =
keycode  91 =
keycode  92 =
keycode  93 =
keycode  94 =
keycode  95 =
keycode  96 = KP_Enter        
keycode  97 = Control         
keycode  98 = KP_Divide       
keycode  99 = Control_backslash
	control keycode  99 = Control_backslash
	alt     keycode  99 = Control_backslash
keycode 100 = AltGr           
keycode 101 = Break           
keycode 102 = Find            
keycode 103 = Up              
keycode 104 = Prior           
	shift   keycode 104 = Scroll_Backward 
keycode 105 = Left            
keycode 106 = Right           
keycode 107 = Select          
keycode 108 = Down            
keycode 109 = Next            
	shift   keycode 109 = Scroll_Forward  
keycode 110 = Insert          
keycode 111 = Remove          
	altgr   control keycode 111 = Boot            
	control alt     keycode 111 = Boot            
keycode 112 =
keycode 113 =
keycode 114 =
keycode 115 =
keycode 116 =
keycode 117 =
keycode 118 =
keycode 119 =
keycode 120 =
keycode 121 =
keycode 122 =
keycode 123 =
keycode 124 =
keycode 125 =
keycode 126 =
keycode 127 =
string F1 = "\033[[A"
string F2 = "\033[[B"
string F3 = "\033[[C"
string F4 = "\033[[D"
string F5 = "\033[[E"
string F6 = "\033[17~"
string F7 = "\033[18~"
string F8 = "\033[19~"
string F9 = "\033[20~"
string F10 = "\033[21~"
string F11 = "\033[23~"
string F12 = "\033[24~"
string F13 = "\033[25~"
string F14 = "\033[26~"
string F15 = "\033[28~"
string F16 = "\033[29~"
string F17 = "\033[31~"
string F18 = "\033[32~"
string F19 = "\033[33~"
string F20 = "\033[34~"
string Find = "\033[1~"
string Insert = "\033[2~"
string Remove = "\033[3~"
string Select = "\033[4~"
string Prior = "\033[5~"
string Next = "\033[6~"
string F21 = ""
string F22 = ""
string F23 = ""
string F24 = ""
string F25 = ""
string F26 = ""
-----------------------------------------------------------------------------
</verb></tscreen>


          <!-- *********** Informacoes Adicionais *********** -->


<sect>Informa&ccedil;&otilde;es Adicionais
<p>

             <!-- *********** Packages Necessarias *********** -->

<sect1>Packages Necess&aacute;rias
<p>
<bf/KBD/ - Package de manipula&ccedil;&atilde;o de teclado e fontes de caracteres do
<bf/Linux/.  Esta package vem normalmente com o <bf/Linux/,
mas para o caso de a sua distribui&ccedil;&atilde;o n&atilde;o a possuir eis os
endere&ccedil;os onde a poder&aacute; obter.

M&aacute;quina : <tt>sunsite.unc.edu</tt> 
por ftp no directorio <tt>/pub/Linux/system/Keyboards</tt>

ou

M&aacute;quina : <tt>tsx-11.mit.edu</tt>
por ftp no directorio <tt>/pub/linux/sources/system</tt>

o nome do ficheiro a obter ser&aacute; : <tt/kbd-0.XX.tar.gz/
o simbolo <tt/XX/ significa a vers&atilde;o, por exemplo :
kbd-0.90.tar.gz ser&aacute; a vers&atilde;o 0.90.


             <!-- *********** Versoes do Software *********** -->


<sect1>Vers&otilde;es de software testadas
<p>
Todas as informac&otilde;es presentes neste documento foram testadas nas 
seguintes vers&otilde;es de software:

<tscreen><verb>
Distribui&ccedil;&atilde;o Slackware 2.2.0
Linux 1.2.8
Emacs 19.27.1 
Xfree 3.1.0
KBD 0.90 (kbd-0.90.tar.gz)
</verb></tscreen>

               <!-- *********** Termos Especiais *********** -->



<sect1>Termos Especiais:
<p>
<descrip>

<tag/BOOT/ Processo de arranque da m&aacute;quina.  
<tag/HOWTO/ Possiveis tradu&ccedil;&otilde;es seram : "Como &eacute; que ...?", "O que &eacute; ..."
<tag/Dir&eacute;ctoria HOME/ a que se obtem executando "cd &lt;ENTER&gt;".
<tag/Package ou pacote/ Conjunto de programas, ficheiros de dados e/ou
documenta&ccedil;&atilde;o reunidos segundo um fim e designa&ccedil;&atilde;o comuns.
<tag/P&aacute;gina de C&oacute;digo/ Normalmente designada em MSDOS como sendo o
bin&oacute;mio FONTES - POSI&Ccedil;&Otilde;ES DE CARACTER, sendo por exemplo a
P&aacute;gina de c&oacute;digo 850 caracterizada por um certo tipo de caracteres
(diferentes dos exibidos pela placa gr&aacute;fica no momento do "boot") e
suas posi&ccedil;&otilde;es no teclado (o "<tt/c-cedilhado/" no sitio certo bem como
os "&lt;,-~ etc").  No <bf/Linux/ o mesmo &eacute; obtido atrav&eacute;s dos
comandos setfont e mapscrn.
</descrip>


            <!-- *********** Bibliografia Aconselhada  *********** -->


<sect1>Bibliografia Aconselhada
<p>
Para uma obter uma perspectiva mais geral do que aqui foi discutido, refira-se aos seguintes documentos :


<itemize>
<item>A P&aacute;gina Portuguesa (http://lila.dei.uc.pt/&tilde;cjrf/po/)
<item>A Portuguese.FAQ, Jos&eacute; Bandeira 
  (http://caravela.di.fc.ul.pt/&tilde;jcrp/projectos/port/PortugueseFAQ.html)
<item>Keystroke-HOWTO, Zenon Fortuna (zenon@netcom.com)
<item>The Linux Danish/International HOWTO, Thomas Petersen (petersen@risoe.dk)
<item>German-HOWTO, Thomas Ploss (plossts@cip.mathematik.uni-stuttgart.de
<item>Linux Keyboard Setup Mini-Howto, Stephen Lee (sl14@cornell.edu)
<item>ISO 8859-1 National Character Set FAQ, Andries Brouwer (aeb@cwi.nl)
</itemize>

A ultima vers&atilde;o deste documento poder&aacute; sempre ser encontrada no URL:

  http://caravela.di.fc.ul.pt/&tilde;jcrp/projectos/port/PORTUGUESE-HOWTO.html


<sect1>Futuro
<p>
Futuras adi&ccedil;&otilde;es a este documento :

<itemize>
<item>Melhorar a configura&ccedil;&atilde;o do Emacs e LEmacs
<item>Adicionar informa&ccedil;&otilde;es sobre o sistema de janela X
<item>Adicionar a analise do pacote RECODE
</itemize>

<sect>Agradecimentos, Nota de Direitos de Autor e Responsabilidade
<p>
Este <bf/HOWTO/ tem como autor <bf/Jo&atilde;o Carlos Rodrigues Pereira/ e &eacute; 
baseado em documenta&ccedil;&atilde;o escrita por <bf/Jos&eacute; Bandeira/ al&eacute;m dos 
restantes <bf/HOWTO's/ do <bf/Linux/.
Sendo distribu&iacute;do de acordo com as condi&ccedil;&otilde;es cumuns a todos os
restantes <bf/HOWTO/'s.

<sect1>Termos e Condi&ccedil;&otilde;es:
<p>
Os documentos <bf/HOWTO/ do <bf/Linux/ podem ser reproduzidos
e distribu&iacute;dos em todo ou em parte, segundo qualquer meio f&iacute;sico
ou electr&oacute;nico, desde que, esta Nota de Direitos de Autor se
mantenha intacta em todas as c&oacute;pias dos mesmos.  A distribui&ccedil;&atilde;o
comercial &eacute; autorizada e encorajada, no entanto, o autor gostaria de
ser notificado de tais ocorr&ecirc;ncias.
<p>
Todas as tradu&ccedil;&otilde;es, trabalhos derivados, ou trabalhos agregando
qualquer dos documentos <bf/HOWTO/ do <bf/Linux/ dever&aacute; estar
abrangido por esta Nota de Direitos de Autor.
<p>
Ou seja, n&atilde;o poder&aacute; ser imposta qualquer restri&ccedil;&atilde;o adicional a
trabalhos efectuados a partir de um dos documentos <bf/HOWTO/ do
<bf/Linux/ nomeadamente no que diz respeito &aacute; sua
distribui&ccedil;&atilde;o.
<p>
Excep&ccedil;&otilde;es a estas regras poderam ser obtidas. Para tal, dever&aacute;
contactar o coordenador dos documentos <bf/HOWTO/ do
<bf/Linux/ no endere&ccedil;o abaixo indicado.

Greg Hankins, greg.hankins@cc.gatech.edu




<sect1>Nota de responsabilidade
<p>
Embora se tenha tomado o maior cuidadeo, para que as informa&ccedil;&otilde;es
contidas neste documento sejam o mais correctas possivel, nem o
<bf/Autor/ nem qualquer dos seus colaboradores &eacute; respons&aacute;vel pela
utiliza&ccedil;&atilde;o das informa&ccedil;&otilde;es contidas neste documento.:


<sect1>Agradecimentos

<p>
Deixo aqui os meus agradecimentos a todos os que de alguma forma me
ajudaram quer atrav&eacute;s das suas sugest&otilde;es quer atrav&eacute;s de
contribui&ccedil;&otilde;es de outro tipo.

<p>
Em special a:

<descrip>

<tag/Carlos Ferreira/Pela <tt/luta/ que trava pela defesa da lingua portuguesa,
bem patente na sua <tt/P&aacute;gina Portuguesa/ disponivel no URL:
<tt>http://lila.dei.uc.pt/&tilde;cjrf/po/</tt>

<tag/Jo&atilde;o C. Silva/Pelo apoio e incentivo e criticas (bem como por me deixar
testar os meus conhecimentos no SEU computador).

<tag/Jos&eacute; Bandeira/Autor dos ficheiros <tt/port.map/ e <tt/xmodmap/. 
Pelo seu apoio e por ter escrito alguma da documenta&ccedil;&atilde;o mais elucidativa
que eu j&aacute; li sobre o assunto.

</descrip>

<bf>EOT.</bf>

</article>












