Hola gente,
estaba leyendo las notas del release de XFree86 4.3.0 y not� que dice
que la configuraci�n de XKB ha sido modificada para ser m�s flexible en
lo que respecta al "Layout" del teclado. Hasta ahora, con XFree86 4,
si uno quiere tener un teclado con dos layouts, la configuraci�n se ve
as�:
Section "InputDevice"
Identifier "Internal Keyboard"
Driver "keyboard"
Option "CoreKeyboard"
Option "XkbKeycodes" "xfree86"
Option "XkbTypes" "default"
Option "XkbCompat" "default"
Option "XkbSymbols"
"en_US(pc105)+es+group(shift_toggle)+us_group2+compose(rwin)"
EndSection
Esta configuraci�n es producto de un d�a que Federico Figueroa y yo nos
preguntamos como funciona el dichoso "mode switch" (si miran los
posibles s�mbolos que se pueden asignar a una tecla, con xkeycaps por
ejemplo, notar�n que hay uno llamado ModeSwitch). El teclado puede
tener varios modos (creo que hasta seis -- no recuerdo exactamente), y
cada modo puede tener diferentes s�mbolos asignados a una tecla, por
ejemplo, la misma tecla que en teclado latinoamericano es "�" en un
teclado estadounidense es ";" y en un teclado alem�n es "�". Si bien
nadie en su sano juicio programa con un teclado configurado en Espa�ol
o Alem�n ;-) a veces resulta conveniente configurarlos de esa forma.
Como es muy engorroso cambiar constantemente la configuraci�n del
teclado (e.g. 'setxkbmap us', 'setxkbmap es') ser�a bueno tener una
forma de hacer eso sin tener que abrir una terminal o algo similar y
ejecutar setxkbmap. Existen un par de hacks horribles para lograr
esto, pero ModeSwitch es la soluci�n limpia. Luego de leer
documentaci�n y mirar los archivos de datos de XKB, Federico y yo
entendimos finalmente como se logra esto. Es lo que est� citado
arriba.
Esa configuraci�n usa como base el layout "en_US" con la variante para
105 teclas; superpone la configuraci�n de espa�ol ("es"), con lo que el
teclado queda efectivamente en espa�ol; a eso le a�ade una tecla para
cambiar de grupo ("group(shift_toggle)") que en este caso son las dos
teclas de shift presionadas al mismo tiempo; sobre eso pone la
configuraci�n de un teclado "us" como grupo dos ("us_group2"); y como
bono configura la tecla derecha con el logotipo de windows como
"compose" ("compose(rwin)").
El lector atento se preguntar� que es exactamente "us_group2". Eso es,
a final de cuentas, un archivo que configura el "grupo 2" con el layout
de "us". Si buscan en los archivos disponibles por defecto notar�n que
no hay algo como "es_group2" o "de_group3". El archivoes
relativamente f�cil de crear a partir de el correspondiente "es", pero
hay que crearlo. Eso no es tanto problema, el problema es m�s bien que
para hacer las cosas bien, habr�a que crear un archivo para cada layout
y para cada grupo (un usuario final quiz�s no, pero un distribuidor
si).
El otro problema que esto tiene es que "es" es el layout por default...
lo cual puede ser irritante si "es" es la configuraci�n que uno quiere
usar de vez en cuando y "us" es la configuraci�n usual. Me pasa
frecuentemente que al iniciar mi sesion de X el teclado est� en otra
cosa que no es "us" y no me doy cuenta sino hasta que ya he digitado
"for f in * � do ..."
En XFree86 4.3 la forma de configurar eso cambi� para bien. Ahora se
ve as�:
Option "XkbModel" "pc105"
Option "XkbLayout" "us,es,de"
Option "XKbOptions" "grp:shift_toggle,compose:rwin"
Es decir, el grupo 1 es "us", el 2 "es" y el 3 "de". Se puede variar
el orden, se pueden especificar varios layouts alternativos, y todo a
partir de una lista peque�a de archivos de definici�n. �Bravo!
Saludos,
Marcelo
--
Desuscripci�n: escriba a [EMAIL PROTECTED], tema 'unsubscribe'
Problemas a: [EMAIL PROTECTED] http://www.linux.or.cr/listas