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.

Contents

1 Introdução 2

2 A package KBD 3

2.1 Comandos da package KBD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.1 Loadkeys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.1.2 Mapscr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2.1.3 Setfont . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

3 Configuração do sistema operativo Linux 4 3.1 Modo texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3.2 O Sistema de Janelas X (X-Window) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.3 Os ficheiros de configuração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

4 Configuração dos vários programas 7 4.1 bash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 4.2 csh / tcsh (versão 6.04 ou superior) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.3 Joe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.4 less . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.5 ls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.6 mc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 4.7 nn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.8 nroff / groff . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.9 emacs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.10 lemacs (lucid emacs) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.11 flex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.12 FTP (File Transfer Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 4.13 E-MAIL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

5 Ficheiros necessários 10 5.1 xmodmap ( ˜ /.xmodmap) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 5.2 port.map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

6 Informaçôes Adicionais 19 6.1 Packages Necessárias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 6.2 Versôes de software testadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 6.3 Termos Especiais: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 6.4 Bibliografia Aconselhada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 6.5 Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

7 Agradecimentos, Nota de Direitos de Autor e Responsabilidade 21 7.1 Termos e Condiçôes: . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 7.2 Nota de responsabilidade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 7.3 Agradecimentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

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\c{c}\~{a}o da tecla '-' do teclado numerico a' tecla com co'digo 74
       keycode  74 = KP_Subtract
     // atribui\c{c}\~{a}o da tecla '4' do teclado numerico a tecla com c\'{o}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\c{c}\~{a}o da tecla <tt/c-cedilhado/ \'{a} tecla com c\'{o}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\c{c}\~{a}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).

4. Configuração dos vários programas 7

-------- INICIO ---------
# Inicializacao das consolas
#
INITTY=/dev/tty[1-9]*
# activacao do modo de mapeamento de 8-bits
#
for tty in $INITTY
do
        echo -n -e "\\033(K" {$>$} $tty
done
# carregamento da tabela de mapeamento de caracteres
#
loadkeys portugal.map
# retirar o comentario do proximo comando se tiver de usar o mapscrn
#
# mapscrn /usr/liv/kbd/ {$<$}qualquer coisa{$>$}
---------- FIM ---------

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

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

Alem das alteraçôes a executar nos ficheiros de configuração atrás mencionados, terá também de copiar o ficheiro .xmodmap para a sua diréctoria HOME para que o Sistema de Janelas X fique correctamente configurado.

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.

5. Ficheiros necessários 10

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 =

6. Informaçôes Adicionais 19

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\c{c}\~{a}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.