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

Responder a