###########################################
Xkb-Br verso 1.2
Ricardo Y. Igarashi (iga@that.com.br)
###########################################

Verses:
1.2 (27/05/1999): - Bug fix: incluso da opo "nodeadkeys" no us_intl.
                  - Bug fix: o "dollar" estava como "dolar".
1.1 (15/02/1999): - Incluso dos caracteres "especiais" (, , , ,  etc) no
              teclado ABNT2.
1.0 (19/11/1998): - Com a incluso dos mapas no XFree86-3.3.3 da Conectiva, 
              decidi cham-lo de verso 1.0.
                  - Correo no arquivo keycodes/xfree86 na verso Diacrd.
0.5 (15/11/1998): - Correo no teclado numrico: suporte  tecla "." 
              (somente no genrico) e correo na tecla "," que estava como 
              ponto (em ambos).
                  - Script de configurao acha o arquivo XF86Config.
                  - Correo de um bug no script de configurao: "us_intl" 
              estava como "us-dead".
0.4 (02/11/1998): - Mudanas nos mapas: adicionado o mapa "us_intl" e permite 
              configurao com o XF86Setup. 
                  - Melhorias nos scripts de instalao e configurao.
0.3 (27/10/1998): - Adicionado geometria para teclado ABNT2
0.2 (26/08/1998): - Troquei as teclas dead-diaerisis (trema) com o quotedbl 
              (aspas) no teclado ABNT2 da verso genrica
0.1 (11/07/1998): - Verso inicial

1. O que  Xkb-Br?
Os computadores vendidos aqui no Brasil costumam vir com 3 tipos de teclados:
 - US101: teclado padro nos EUA
 - ABNT2: teclado brasileiro
 - PT102(?): teclado portugus

Para os usurios do US101, a configurao do XFree86  simples, e o nico problema so os dead-keys.

O teclado ABNT2 no tem suporte padro do XFree86. Para us-lo, normalmente escolhe-se o teclado US101 e depois ajeita-se para o ABNT2 usando o xmodmap. Isso funciona perfeitamente e  simples, mas no muito elegante no meu ponto de vista.

Por isso, resolvi "hackear" os arquivos referentes ao xkb para adicionar o suporte ao teclado ABNT2 e aos dead-keys nos teclado s ABNT2 e US101. Os arquivos modificados ou adicionados so os seguintes (no diretrio /usr/X11R6/lib/X11/xkb):

xkb/geometry/pc
xkb/keycodes/xfree86
xkb/keymap/xfree86
xkb/rules/xfree86
xkb/rules/xfree86.lst
xkb/symbols/br
xkb/symbols/us_intl
xkb/geometry.dir
xkb/keycodes.dir
xkb/keymap.dir
xkb/symbols.dir

Alm destes, alguns arquivos do diretrio /usr/X11R6/lib/X11/locale devem ser modificados. Essas modificaes foram me passados pelo Wanderlei Antonio Cavassin (cavassin@conectiva.com.br).

compose.dir
locale.dir
locale.alias
iso8859-1/Compose

Por enquanto, no h suporte ao teclado portugus, pois eu no possuo um para testar, e acredito que haja conflito com o Diacrd.

2. Onde pego?

Os arquivos do Xkb-Br esto disponveis em:

http://lie-br.conectiva.com.br/~iga/teclado/xkb-br.html

Existem duas verses do Xkb-Br:
 - Verso genrica: esse  para usurios no-Linux e para usurios Linux que no querem usar o Diacrd. Neste caso, os dead-keys s funcionam para aplicativos I18N.

 - Verso Diacrd: se voc usa o Diacrd (http://www.geocities.com/SiliconValley/8459/X11deadkeys-miniHOWTO.html), pegue este arquivo. As modificaes necessrias para o Diacrd esto inclusos. Portanto, voc NO DEVE usar o arquivo xfree86 que vem com o Diacrd. Igualmente, voc no precisa do xmodmap.diacrd.

S um problema: voc no conseguir digitar "i+grave".  que o cdigo usado no Diacrd (keycode 123) bate com a tecla "/?" do teclado ABNT2. Para ns brasileiros, no entanto, no  um problema grave.

3. Como instalo?

A instalao do teclado  feito por um script bem simples, escrito em Tcl. A configurao pode ser feita com o XF86Setup ou com um script Tcl.

1) Descomprima o arquivo xkb-br-???-1.2.tar.gz num diretrio qualquer.
2) Rode o script install-xkbbr (para instalao dos novos mapas). Os novos mapas sero instalados e os mapas originais tero backups com o sufixo .xkbbr
3) Para configurar:
  a) Rode o XF86Setup, e escolha:
   - Para teclado US101:
      - Model: Generic 101-key PC
      - Layout (language): U.S. English w/ deadkeys 
   - Para teclado ABNT2:
      - Model: Brazilian ABNT2
      - Layout (language): Brazilian 
  b) Rode o script xkbbr (para configurao) com um dos parmetros:
   - Para teclado US101: xkbbr pc101
   - Para teclado ABNT2: xkbbr abnt2
4) Obviamente, voc tambm pode copiar os mapas manualmente.
5) Pare de carregar o .Xmodmap, afinal para que voc est instalando o Xkb-Br? 8^).

O script xkbbr procura pelo arquivo XF86Config sob o diretrio /etc/. Ele vai reclamar se encontrar mais de um arquivo XF86Config ou se no encontrar nenhum.

Voc precisa mudar os locales tambm. Ponha no seu ~/.bash_profile as seguintes linhas:

LANG=pt_BR
LC_ALL=pt_BR
LC_CTYPE=ISO-8859-1
LESSCHARSET=latin1
export LANG LC_ALL LC_CTYPE LESSCHARSET

4. Pode ser usado em quais ambientes?

O Xkb-Br foi desenvolvido usando o XFree86 rodando sobre Linux, e a verso genrica foi verificada no FreeBSD. Creio que a verso genrica funcione tambm nos demais *BSD (NetBSD, OpenBSD) e OS/2 que usem o XFree86. 
No sei se funciona em outros servidores X (Metrolink e AcceleratedX). Se der certo, me mande um mail.

5. Posso usar o xf86config?

No. Para configurar na mo, simplesmente procure as linhas referentes ao teclado no XF86Config e coloque

 - Teclado ABNT2
	Section "Keyboard"
	   Protocol        "Standard"
	   XkbRules        "xfree86"
	   XkbModel        "abnt2"
	   XkbLayout       "br"
	EndSection
 - Teclado US101
	Section "Keyboard"
	   Protocol        "Standard"
	   XkbRules        "xfree86"
	   XkbModel        "pc101"
	   XkbLayout       "us_intl"
	EndSection

6. E funciona?

Uma boa pergunta... Eu sei que funciona NO MEU MICRO.

 - Conectiva Guarani 3.0 com kernel 2.0.35/2.2.9, com ou sem o patch do Diacrd
 - FreeBSD 2.2.6
 - XFree86 3.3.3.1
 - Teclados ABNT2 e US101

Eu no testei em outras configuraes. Portanto, quem consegue responder a essa pergunta  voc, meu caro beta-tester!

Se voc encontrar algum BUG, mande um e-mail para
 iga@that.com.br

7. Agradecimentos

Gostaria de agradecer para as seguintes pessoas e organizaes:

 - Wanderlei Antonio Cavassin pelo grande incentivo, por ter me ensinado a forma de configurar o X para reconhecer os dead-keys nos aplicativos I18N e pelos links referentes ao assunto.
 - Claudemir Todo Bom e outros que criaram o Diacrd.
 - Linus Torvalds e todos aqueles que fizeram o Linux.
 - XFree86.org, pelo GUI que est aqui na minha frente.

E tambm para todos que me mandaram retorno (me desculpe se esqueci de algum):

Alexandre Ruoso
Edmar Ricardo Machado
Fabiano Carlos Heringer
Fernando Cesar Carreira
Leonardo G Cooper
Marina Simon Becker
Ribamar F. Sousa
Roberto Souza de Azevedo
Wilson Komatsu

8. Copyright

O Xkb-Br  Free Software. Voc pode fazer o que quiser com ele. S no distribua uma verso modificada usando o nome xkbbr para evitar confuses.

