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

  Este documento pretende ser um guia de referncia de configurao do
  Linux e seus programas para utilizao com o Teclado e Pgina de
  Cdigo Portugueses.

  1.  Introduo

   semelhana de outras linguas faladas na europa, a lingua portuguesa
  reveste-se de algumas caractersticas especiais, tais como a
  utilizao 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 introduo de caracteres acentuados atravs do teclado, como seja
     a escrita de jo~ao em vez da sua forma correcta.

  2. A exibio dos mesmos no ecran do computador, o suporte resume-se
     normalmente  correcta localizao 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 portugus.

  (1) uma vez que existem alguns programas que no 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
  configurao e exteno em tempo de execuo, no constituindo o
  tratamento do teclado e fontes de caracteres excepo.

  A configurao do teclado  conseguida atravs da possibilidade de
  redefinio das tabelas de traduo 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 descrio 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 cdigo (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 cdigo de tecla, ou keycode.

  Por exemplo :

       // atribuio da tecla '-' do teclado numerico a' tecla com co'digo 74

         keycode  74 = KP_Subtract

       // atribuio da tecla '4' do teclado numerico a tecla com cdigo 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 <-> aplicao,
  temos o comando mapscrn que opera no sentido aplicao <-> ecran.  Ou
  seja, uma aplicao envia o caracter com o cdigo 123 para o ecran, e
  o caracter com o cdigo 200 ser mostrado.

  isto,  claro, se existir no ficheiro de traduo 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 alterao das fontes utilizadas em modo de
  texto.

  Voltarei a este assunto mais tarde.

  3.  Configurao do sistema operativo Linux

  Feitas as primeiras apresentaes vamos agora ver como se procede 
  configurao 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 localizao das vrias
  teclas segundo a disposio do teclado portugus.  Tal  conseguido
  atravs da utilizao 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 ns, o ficheiro de mapa de teclado permite tambm
  especificar teclas especiais chamadas "deadkeys".  Deadkeys so
  teclas, que, quando presionadas no 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" responsvel pela definio da
  tecla c-cedilhado:

       // atribuio da tecla <tt/c-cedilhado/  tecla com cdigo 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 necessrio a exibio 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 no 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 no eram exactamente o
  que estaria  espera.

  O que acontece,  que, a fonte de caracteres corrente poder no
  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 no 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 no 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
  atrs, 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 traduo>

  O ficheiro com a tabela de traduo 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 verses de software por mim testado, o uso deste ultimo
  comando revelou-se desnecessrio.

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

  O Sistema de Janelas X vem equipado com um utilitrio destinado 
  configurao do teclado, chamado xmodmap.

  O comando xmodmap cumpre uma funo 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 configurao do Sistema de Janelas X no interfere de
  forma alguma com a configurao do Modo de Texto.  De facto, 
  possivel ter o seu X bem configurado, e no entatanto no ter realizado
  qualquer tipo de configurao ao Modo de Texto, e vice-versa.

  Nota : Na verso XFree 3.1.x no  possivel a utilizao de dead-keys
  ao contrario da verso XFree86 2.1.x.  Isto deve-se so facto de o "X
  Consortium" ter chegado  concluso de que o sistema actual de
  mapeamento de teclas no tratava de forma satisfatria toda a imensa
  variedade de linguas escritas nas vrias partes do mundo.  Deste modo,
  decidiu-se que o "peso" relativo  gesto do teclado fosse transferido
  para as aplicaes X.  Desta forma o suporte ou no de dead-keys numa
  aplicao depende apenas dela, podendo assumir vrios aspectos :

    A aplicao no implementa a funo desejada

    A opo correcta no esta ligada no seu ficheiro de configurao

    A aplicao no foi compilada com o referido suporte

    Outras ...

  3.3.  Os ficheiros de configurao

  At aqui tudo bem, mas decerto que no teremos de executar todos estes
  comandos no inicio de cada sesso de trabalho, pois no ?

  A resposta  obviamente: No !

  Para nos poupar este trabalho existem uma srie de ficheiros de
  configurao onde deveremos colocar a descrio dos comandos a
  executar.  Os ficheiro so :

  /etc/rc.d/rc.keymap - Ficheiro lido quando do boot do sistema
  operativo, servindo para especificar os comandos de inicializao das
  vrias consolas de modo texto.

  Segue-se a descrio das linhas que deveram ser incluidas neste (se
  no tiverem sido incluidas pela instalao 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 alteraes a executar nos ficheiros de configurao atrs
  mencionados, ter tambm de copiar o ficheiro Janelas X fique
  correctamente configurado.

  4.  Configurao dos vrios 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 alterao ir tambm afectar todos os programas que utilizem a
  biblioteca readline da GNU.

  4.2.  csh / tcsh (verso 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 opo "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 opo -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 opo -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 atravs 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
  tranfrencia 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 documentao em modo binary de
  forma a manter a integridade da mesma.

  4.13.  E-MAIL

  O mesmo(*) tipo de restries se aplica ao envio de documentos
  contendo caracteres acentuados, atravs 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 documentao em modo 8 bits.  Exemplos de programas de
  correio eletronico com suporte para MIME, so o Eudora e o Pine.

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

  5.  Ficheiros necessrios

  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.  Informaes Adicionais

  6.1.  Packages Necessrias

  KBD - Package de manipulao de teclado e fontes de caracteres do
  Linux.  Esta package vem normalmente com o Linux, mas para o caso de a
  sua distribuio no a possuir eis os endereos onde a poder obter.

  Mquina : sunsite.unc.edu por ftp no directorio
  /pub/Linux/system/Keyboards

  ou

  Mquina : 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 verso, por exemplo : kbd-0.90.tar.gz ser a verso 0.90.
  6.2.  Verses de software testadas

  Todas as informaces presentes neste documento foram testadas nas
  seguintes verses de software:

       Distribuio 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 mquina.

     HOWTO
        Possiveis tradues seram : "Como  que ...?", "O que  ..."

     Dirctoria HOME
        a que se obtem executando "cd <ENTER>".

     Package ou pacote
        Conjunto de programas, ficheiros de dados e/ou documentao
        reunidos segundo um fim e designao comuns.

     Pgina de Cdigo
        Normalmente designada em MSDOS como sendo o binmio FONTES -
        POSIES DE CARACTER, sendo por exemplo a Pgina de cdigo 850
        caracterizada por um certo tipo de caracteres (diferentes dos
        exibidos pela placa grfica no momento do "boot") e suas
        posies no teclado (o "c-cedilhado" no sitio certo bem como os
        "<,-  etc").  No Linux o mesmo  obtido atravs 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 Pgina 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 verso deste documento poder sempre ser encontrada no URL:

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

  6.5.  Futuro

  Futuras adies a este documento :

    Melhorar a configurao do Emacs e LEmacs

    Adicionar informaes 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 Joo Carlos Rodrigues Pereira e  baseado em
  documentao escrita por Jos Bandeira alm dos restantes HOWTO's do
  Linux.  Sendo distribudo de acordo com as condies cumuns a todos os
  restantes HOWTO's.

  7.1.  Termos e Condies:

  Os documentos HOWTO do Linux podem ser reproduzidos e distribudos em
  todo ou em parte, segundo qualquer meio fsico ou electrnico, desde
  que, esta Nota de Direitos de Autor se mantenha intacta em todas as
  cpias dos mesmos.  A distribuio comercial  autorizada e
  encorajada, no entanto, o autor gostaria de ser notificado de tais
  ocorrncias.

  Todas as tradues, trabalhos derivados, ou trabalhos agregando
  qualquer dos documentos HOWTO do Linux dever estar abrangido por esta
  Nota de Direitos de Autor.

  Ou seja, no poder ser imposta qualquer restrio adicional a
  trabalhos efectuados a partir de um dos documentos HOWTO do Linux
  nomeadamente no que diz respeito  sua distribuio.

  Excepes a estas regras poderam ser obtidas. Para tal, dever
  contactar o coordenador dos documentos HOWTO do Linux no endereo
  abaixo indicado.

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

  7.2.  Nota de responsabilidade

  Embora se tenha tomado o maior cuidadeo, para que as informaes
  contidas neste documento sejam o mais correctas possivel, nem o Autor
  nem qualquer dos seus colaboradores  responsvel pela utilizao das
  informaes contidas neste documento.:

  7.3.  Agradecimentos

  Deixo aqui os meus agradecimentos a todos os que de alguma forma me
  ajudaram quer atravs das suas sugestes quer atravs de contribuies
  de outro tipo.

  Em special a:

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

     Joo 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 documentao mais elucidativa que eu j li
        sobre o assunto.

  EOT.

