  Linux Portuguese-HOWTO
  João Carlos Rodrigues Pereira, jcrp@caravela.di.fc.ul.pt
  v1.0, 14 September 1995

  Este documento pretende ser um guia de referência de configuração do
  Linux e seus programas para utilização com o Teclado e Página de
  Código Portugueses.

  1.  Introdução

  À semelhança de outras linguas faladas na europa, a lingua portuguesa
  reveste-se de algumas características especiais, tais como a
  utilização de caracteres acentuados, que tornam o seu suporte dificil,
  pouco intuitivo ou até mesmo impossivel, por parte do software
  utilizado nos nossos computadores.

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

  1. A introdução de caracteres acentuados através do teclado, como seja
     a escrita de jo~ao em vez da sua forma correcta.

  2. A exibição dos mesmos no ecran do computador, o suporte resume-se
     normalmente à correcta localização das teclas, nada mais.

  O presente HOWTO pretende, pois, ajudar o utilizador do sistema 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ês.

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

  2.  A package KBD

  O Linux foi desenhado internamente de modo a facilitar a sua facil
  configuração e extenção em tempo de execução, não constituindo o
  tratamento do teclado e fontes de caracteres excepção.

  A configuração do teclado é conseguida através da possibilidade de
  redefinição das tabelas de tradução de caracteres e do carregamento de
  fontes de caracteres de ecran.

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

  2.1.  Comandos da package KBD

  Segue-se a descrição de alguns dos comandos disponibilizados pela
  package KBD.

  2.1.1.  Loadkeys

  O comando loadkeys permite especificar a equivalencia entre a tecla
  que se pressiona no teclado e o código (keycode) que os programas
  recebem.  Isto é conseguido atraves do carregamento de um mapa de
  teclado.

  Por exemplo o comando

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

  carrega o mapa do teclado portugues.

  O que e um mapa de teclado ?  Bem, um mapa de teclado é um ficheiro de
  texto onde se colocam as correspondencias entre o scancode de uma
  tecla e o seu código de tecla, ou keycode.

  Por exemplo :

       // atribuição da tecla '-' do teclado numerico a' tecla com co'digo 74

         keycode  74 = KP_Subtract

       // atribuição da tecla '4' do teclado numerico a tecla com có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

  2.1.2.  Mapscr

  Alem do comando anterior que opera no sentido teclado <-> aplicação,
  temos o comando mapscrn que opera no sentido aplicação <-> ecran.  Ou
  seja, uma aplicação envia o caracter com o código 123 para o ecran, e
  o caracter com o código 200 será mostrado.

  isto, é claro, se existir no ficheiro de tradução de caracteres a
  seguinte linha:

         123 200

  Este assunto será desenvolvido mais a frente.

  2.1.3.  Setfont

  O comando setfont permite o carregamento de uma fonte de caracteres de
  ecran, possibilitando a alteração das fontes utilizadas em modo de
  texto.

  Voltarei a este assunto mais tarde.

  3.  Configuração do sistema operativo Linux

  Feitas as primeiras apresentações vamos agora ver como se procede á
  configuração do Linux, tanto em modo de terminal como no Sistema de
  Janelas X.

  3.1.  Modo texto

  Primeiro de tudo há que dizer ao Linux qual a localização das várias
  teclas segundo a disposição do teclado português.  Tal é conseguido
  através da utilização do comando loadkeys.

  O comando a executar é:

         loadkeys portugal.map

  Experimente algumas teclas como ",.|!"#$%&/()=?", etc...

  OK, agora já temos as teclas no sitio certo (incluindo !#$%&/()=?'{}
  etc) mas, e os c-cedilhados, a com til e outros caracteres acentuados
  ?

  Bem, felizmente para nós, o ficheiro de mapa de teclado permite também
  especificar teclas especiais chamadas "deadkeys".  Deadkeys são
  teclas, que, quando presionadas não tem como resultado o aparecimento
  de um caracter no ecran, limitando-se a alterar o comportamento da
  tecla pressionada a seguir.

  Exemplo:

  O equivalente a (em MSDOS) pressionar a tecla til seguida da tecla a,
  o que provoca o aparecimento de um a-com-til (ã) !!!

  Eis a linha do ficheiro "portugal.map" responsável pela definição da
  tecla c-cedilhado:

       // atribuição da tecla <tt/c-cedilhado/ á tecla com código 39

       keycode  39 = +ccedilla        Ccedilla

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

       echo -n -e "\\033(K"

  Este comando limita-se a pedir ao terminal que entre em modo de "8
  bits", modo este necessário a exibição de caracteres especiais tais
  como o c-cedilhado, a-com-til etc.

  Experimente pressionar a tecla c-cedilhado. Em principio deverá ter
  aparecido um c-cedilhado ou um caracter estranho.  No segundo caso,
  tente não se preocupar com isso, este assunto será tratado mais á
  frente.  Experimente outras teclas com acentos.  Sim, é possivel que
  tenham aparecido alguns caracteres estranhos ... deixemos isso de
  lado...

  OK, agora vamos ... aos caracteres estranhos.  Provavelmente alguns
  dos caracteres que apareceram no passo anterior não eram exactamente o
  que estaria á espera.

  O que acontece, é que, a fonte de caracteres corrente poderá não
  possuir todos os caracteres de que necessitamos.  Vamos entao mudar a
  fonte de caracteres activa, executando o comando:

       setfont latin1u-16

  E eis que aparecem os caracteres que todos nos esperavamos.

  Mas, e se alguns dos caracteres continuassem a não aparecer ?  Bem,
  neste caso, teriamos de convencer o ecran a mostrar os caracteres
  certos em cada caso.  Expliquemos, o que se passaria neste caso, era
  que a fonte de caracteres não possuia a imagem certa de alguns dos
  caracteres que desejavamos exibir (o que alias acontecia com a fonte
  anterior).

  Neste caso poderiamos recorrer ao comando mapscrn.  Como foi descrito
  atrás, o referido comando permite especificar qual o caracter X a ser
  exibido no ecran, quando um programa deseja exibir um caracter Y.
  Desta forma, poderiamos fazer com que , ao escrever o caracter c-
  cedilhado no ecran, fosse na realidade exibido um outro caracter cuja
  imagem na nossa fonte de caracteres correspondesse a imagem de um c-
  cedilhado.

  O comando a ser executado seria :

         mapscrn <nome do ficheiro de tabela de tradução>

  O ficheiro com a tabela de tradução teria no entanto de ser criado por
  nos, segindo um processo moroso de tentativa e erro ate encontrar o
  caracter cuja "imagem" nos pretendiamos.  Ou, de uma forma mais facil,
  poderiamos usar o comando showfont.

  No entanto nas versões de software por mim testado, o uso deste ultimo
  comando revelou-se desnecessário.

  3.2.  O Sistema de Janelas X (X-Window)

  O Sistema de Janelas X vem equipado com um utilitário destinado à
  configuração do teclado, chamado xmodmap.

  O comando xmodmap cumpre uma função identica ao comando loadkeys, ou
  seja, lê um ficheiro de mapa de teclado de X, expecificando as
  equivalencias entre os scancodes e respectivos keycodes.

  Eis um excerto deste ficheiro:

         keycode 47 = Ccedilla
         keycode 48 = masculine ordfeminine
         keycode 51 = Dtilde Dcircumflex_accent

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

  Nota : Na versão XFree 3.1.x não é possivel a utilização de dead-keys
  ao contrario da versão XFree86 2.1.x.  Isto deve-se so facto de o "X
  Consortium" ter chegado à conclusão de que o sistema actual de
  mapeamento de teclas não tratava de forma satisfatória toda a imensa
  variedade de linguas escritas nas várias partes do mundo.  Deste modo,
  decidiu-se que o "peso" relativo à gestão do teclado fosse transferido
  para as aplicações X.  Desta forma o suporte ou não de dead-keys numa
  aplicação depende apenas dela, podendo assumir vários aspectos :

  ·  A aplicação não implementa a função desejada

  ·  A opção correcta não esta ligada no seu ficheiro de configuração

  ·  A aplicação não foi compilada com o referido suporte

  ·  Outras ...

  3.3.  Os ficheiros de configuração

  Até aqui tudo bem, mas decerto que não teremos de executar todos estes
  comandos no inicio de cada sessão de trabalho, pois não ?

  A resposta é obviamente: Não !

  Para nos poupar este trabalho existem uma série de ficheiros de
  configuração onde deveremos colocar a descrição dos comandos a
  executar.  Os ficheiro são :

  /etc/rc.d/rc.keymap - Ficheiro lido quando do boot do sistema
  operativo, servindo para especificar os comandos de inicialização das
  várias consolas de modo texto.

  Segue-se a descrição das linhas que deveram ser incluidas neste (se
  não tiverem sido incluidas pela instalação base do sistema).

       -------- INICIO ---------
       # Inicializacao das consolas
       #
       INITTY=/dev/tty[1-9]*

       # activacao do modo de mapeamento de 8-bits
       #
       for tty in $INITTY
       do
               echo -n -e "\\033(K" > $tty
       done

       # carregamento da tabela de mapeamento de caracteres
       #
       loadkeys portugal.map

       # retirar o comentario do proximo comando se tiver de usar o mapscrn

       #
       # mapscrn /usr/liv/kbd/ <qualquer coisa>

       ---------- FIM ---------

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

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

  Alem das alterações a executar nos ficheiros de configuração atrás
  mencionados, terá também de copiar o ficheiro Janelas X fique
  correctamente configurado.

  4.  Configuração dos vários programas

  4.1.  bash

  Crie um ficheiro chamado .inputrc na sua directoria HOME contendo as
  seguintes linhas :

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

  Esta alteração irá também afectar todos os programas que utilizem a
  biblioteca readline da GNU.

  4.2.  csh / tcsh (versão 6.04 ou superior)

  Inclua as seguintes linhas no ficheiro /etc/profile :

       export LANG=C
       export LC_CTYPE=iso_8859_1

  ou inclua as seguintes linhas no ficheiro .login :

       setenv LANG=C
       setenv LC_CTYPE=iso_8859_1

  4.3.  Joe

  Acrescente a seguinte linha ao ficheiro /etc/profile :

       alias joe='joe -asis'

  4.4.  less

  Acrescente a seguinte linha ao ficheiro /etc/profile :

       export LESSCHARSET=latin1

  4.5.  ls

  Acrescente a seguinte linha ao ficheiro /etc/profile :

       alias ls="ls -N"

  ou

       alias ls="ls -8"

  4.6.  mc

  No menu "Options" sub-menu "Configuration" ligue a opção "8 bit
  clean".

  4.7.  nn

  Acrescente a seguinte linha ao ficheiro ~/.nn/init :

       set data-bits 8

  4.8.  nroff / groff

  Ao invocar o comando nroff ou groff acrescente a opção -Tlatin1 Por
  exemplo :

       groff -Tlatin1 -mandoc $1 | less

  4.9.  emacs

  Coloque no seu  /.emacs as linhas :

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

  4.10.  lemacs (lucid emacs)

  Coloque no seu  /.emacs as linhas :

         (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")

  4.11.  flex

  Especifique a opção -8 se o parser a gerar necessitar de ler dados de
  8 bit.

  4.12.  FTP (File Transfer Protocol

  Cuidados a ter quando se enviam ficheiros através de FTP.  Como
  sabemos, o modo de transferencia de ficheiros binarios é o binary,
  sendo o modo ascii utilizado para textos.  No entanto, o modo de
  tranfêrencia ascii remove o oitavo bit de cada caracter transmitido, o
  que terá como consequencia a perda de todos os caracteres acentuados.
  Desta forma é aconselhado o envio de documentação em modo binary de
  forma a manter a integridade da mesma.

  4.13.  E-MAIL

  O mesmo(*) tipo de restrições se aplica ao envio de documentos
  contendo caracteres acentuados, através de E-MAIL.

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

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

  5.  Ficheiros necessários

  5.1.  xmodmap ( ~/.xmodmap)

  --------------------------------------------------------------------------

  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
  -----------------------------------------------------------------------------

  5.2.  port.map

  ------------------------------------------------------------------------------
  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 = ""
  -----------------------------------------------------------------------------

  6.  Informações Adicionais

  6.1.  Packages Necessárias

  KBD - Package de manipulação de teclado e fontes de caracteres do
  Linux.  Esta package vem normalmente com o Linux, mas para o caso de a
  sua distribuição não a possuir eis os endereços onde a poderá obter.

  Máquina : sunsite.unc.edu por ftp no directorio
  /pub/Linux/system/Keyboards

  ou

  Máquina : tsx-11.mit.edu por ftp no directorio
  /pub/linux/sources/system

  o nome do ficheiro a obter será : kbd-0.XX.tar.gz o simbolo XX
  significa a versão, por exemplo : kbd-0.90.tar.gz será a versão 0.90.
  6.2.  Versões de software testadas

  Todas as informacões presentes neste documento foram testadas nas
  seguintes versões de software:

       Distribuiçã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)

  6.3.  Termos Especiais:

     BOOT
        Processo de arranque da máquina.

     HOWTO
        Possiveis traduções seram : "Como é que ...?", "O que é ..."

     Diréctoria HOME
        a que se obtem executando "cd <ENTER>".

     Package ou pacote
        Conjunto de programas, ficheiros de dados e/ou documentação
        reunidos segundo um fim e designação comuns.

     Página de Código
        Normalmente designada em MSDOS como sendo o binómio FONTES -
        POSIÇÕES DE CARACTER, sendo por exemplo a Página de código 850
        caracterizada por um certo tipo de caracteres (diferentes dos
        exibidos pela placa gráfica no momento do "boot") e suas
        posições no teclado (o "c-cedilhado" no sitio certo bem como os
        "<,-  etc").  No Linux o mesmo é obtido através dos comandos
        setfont e mapscrn.

  6.4.  Bibliografia Aconselhada

  Para uma obter uma perspectiva mais geral do que aqui foi discutido,
  refira-se aos seguintes documentos :

  ·  A Página Portuguesa (http://lila.dei.uc.pt/~cjrf/po/)

  ·  A Portuguese.FAQ, José Bandeira
     (http://caravela.di.fc.ul.pt/~jcrp/projectos/port/PortugueseFAQ.html)

  ·  Keystroke-HOWTO, Zenon Fortuna (zenon@netcom.com)

  ·  The Linux Danish/International HOWTO, Thomas Petersen
     (petersen@risoe.dk)
  ·  German-HOWTO, Thomas Ploss (plossts@cip.mathematik.uni-stuttgart.de

  ·  Linux Keyboard Setup Mini-Howto, Stephen Lee (sl14@cornell.edu)

  ·  ISO 8859-1 National Character Set FAQ, Andries Brouwer (aeb@cwi.nl)

  A ultima versão deste documento poderá sempre ser encontrada no URL:

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

  6.5.  Futuro

  Futuras adições a este documento :

  ·  Melhorar a configuração do Emacs e LEmacs

  ·  Adicionar informações sobre o sistema de janela X

  ·  Adicionar a analise do pacote RECODE

  7.  Agradecimentos, Nota de Direitos de Autor e Responsabilidade

  Este HOWTO tem como autor João Carlos Rodrigues Pereira e é baseado em
  documentação escrita por José Bandeira além dos restantes HOWTO's do
  Linux.  Sendo distribuído de acordo com as condições cumuns a todos os
  restantes HOWTO's.

  7.1.  Termos e Condições:

  Os documentos HOWTO do Linux podem ser reproduzidos e distribuídos em
  todo ou em parte, segundo qualquer meio físico ou electrónico, desde
  que, esta Nota de Direitos de Autor se mantenha intacta em todas as
  cópias dos mesmos.  A distribuição comercial é autorizada e
  encorajada, no entanto, o autor gostaria de ser notificado de tais
  ocorrências.

  Todas as traduções, trabalhos derivados, ou trabalhos agregando
  qualquer dos documentos HOWTO do Linux deverá estar abrangido por esta
  Nota de Direitos de Autor.

  Ou seja, não poderá ser imposta qualquer restrição adicional a
  trabalhos efectuados a partir de um dos documentos HOWTO do Linux
  nomeadamente no que diz respeito á sua distribuição.

  Excepções a estas regras poderam ser obtidas. Para tal, deverá
  contactar o coordenador dos documentos HOWTO do Linux no endereço
  abaixo indicado.

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

  7.2.  Nota de responsabilidade

  Embora se tenha tomado o maior cuidadeo, para que as informações
  contidas neste documento sejam o mais correctas possivel, nem o Autor
  nem qualquer dos seus colaboradores é responsável pela utilização das
  informações contidas neste documento.:

  7.3.  Agradecimentos

  Deixo aqui os meus agradecimentos a todos os que de alguma forma me
  ajudaram quer através das suas sugestões quer através de contribuições
  de outro tipo.

  Em special a:

     Carlos Ferreira
        Pela luta que trava pela defesa da lingua portuguesa, bem
        patente na sua Página Portuguesa disponivel no URL:
        http://lila.dei.uc.pt/~cjrf/po/

     João C. Silva
        Pelo apoio e incentivo e criticas (bem como por me deixar testar
        os meus conhecimentos no SEU computador).

     José Bandeira
        Autor dos ficheiros port.map e xmodmap.  Pelo seu apoio e por
        ter escrito alguma da documentação mais elucidativa que eu já li
        sobre o assunto.

  EOT.

