Xorg/X11 (la infraestructura gráfica más tÃpica en Linux) permite traducir libremente los «códigos de tecla» (o Keycodes, que produce el teclado) en los «sÃmbolos de tecla» (KeySims) que interpretan las aplicaciones gráficas. Gracias a esta flexibilidad, un mismo teclado puede usarse para introducir caracteres de diversos idiomas.
Para identificar códigos de tecla se pude usar el comando xev
Para editar la configuración de traducción (tabla de asignación de teclas y mapa de modificadores de tecla) se puede usar el comando xmodmap.
# muestra tabla de asignación de teclas
# para cada tecla se muestra el sÃmbolo asociado, según la siguiente estructura:
# tecla sola (1a columna), mays+tecla (2a), cambio_modo+tecla (3a), cambio_modo+mays+tecla (4a)
# ISO_Level3_shift + [[ tecla (5a), mays+tecla (6a), cambio_modo+tecla (7a), cambio_modo+mays+tecla (8a) ]]
xmodmap -pke
«cambio_modo» se puede asignar a cualquier tecla, de forma análoga a la tecla mayúsculas. Normalmente, cambio_modo se asigna a Alt Gr (código 108), pero podemos asignarlo al Alt izquierdo (código 64)
#mapa de modificadores de tecla
xmodmap -pm
shift
lock
control
mod1
mod2
mod3
mod4
mod5
Con estos dos comandos se puede generar un fichero inicial de configuración:
xmodmap -pke >> ~/mi_modmap xmodmap -pm >> ~/mi_modmap
TÃpicamente, a las teclas «Windows» (o «manzana» en Mac) se las vincula a Super (Super_R y SuperL, códigos 133 y 134). La tecla «menú contextual» tiene el código 135.
También se podrÃa utilizar xmodmap para configurar la tecla meta en Emacs. A veces conviene probar con un terminal distinto de xterm, ya que puede ser el culpable de que no funcione la tecla meta.
Una forma de utilizar Alt Gr es asignarlo como «cambio_modo». Luego, para cada tecla que vayamos a usar con Alt Gr habrÃa que definir el carácter que deseamos para la combinación con «cambio_modo» (o sea, la tercera columna). Por ejemplo,
# Asignar cambio_modo a Alt Gr xmodmap -e "keycode 108 = Mode_switch" # Asignar simbolo de euro a la combinacion Alt Gr+ e xmodmap -e "keycode 26 = e E EuroSign E"
Otra opción más común hoy en dÃa es asignar a Alt Gr «ISO_Level3_Shift», de modo que para las teclas que queramos usar con Alt Gr definiremos la columna 5 (ISO_Level3_Shift). Si quisiésemos asignar una tecla a la combinación Alt Gr + Mays, entonces usarÃamos la columna 6 (ISO_Level3_Shift + Mays).
xmodmap -e «keycode 108 = ISO_Level3_Shift»
# Ademas de definir el simbolo de euro para ISO_Level3_Shift, también definimos cent para ISO_Level3_Shift + Mays
xmodmap -e «keycode 26 = e E e E EuroSign cent EuroSign»
Combinando «cambio_modo», mayúsculas (mays) y ISO_Level3_Shift, podemos asignar hasta 4 sÃmbolos por cada tecla o_O
Una vez personalizado el fichero, se puede cargar automáticamente añadiendo xmodmap ~/mi_modmap a ~/.xinitrc