La portátil Acer Travelmate 2480 tiene un par de teclas a ambos lados de la tecla "Arriba" que permiten marcar los símbolos del Euro (€) y del dólar ($), tal como puede verse en la figura de abajo:
En la instalación estándar de Ubuntu Feisty estas dos teclas son inservibles. Cada vez que uno por equivocación las presiona, el núcleo emite un mensaje reportando una tecla desconocida:
kernel: [00] atkbd.c: Unknown key pressed (translated set 2, code 0xb4 on isa0060/serio0).
kernel: [00] atkbd.c: Use 'setkeycodes e034 <keycode>' to make it known.
...
Más allá de este fastidioso mensaje apareciendo en los registros del sistema cada vez que uno se equivoca y presiona "€" o "$" en vez de "Arriba", no hay ningún problema. Pero en estos días me puse a investigar como hacer para activar ambas teclas y matar dos pájaros de un tiro: el fastidioso mensaje y poder marcar los signos monetarios de un solo tiro. Con este teclado, para ingresar "€" hay que presionar "Alt Gr+e" y para el dólar "Shift 4".
La clave la da el mismo núcleo en su queja: Usar 'setkeycodes e034 <keycode> para poder reconocerla.
setkeycodes
es un comando que permite asignar códigos de teclas (keycodes) a los códigos de rastreo (scancodes) que son enviados por el núcleo cada vez que uno presiona una tecla.
Estos códigos luego son interpretados por la cónsola o por el ambiente gráfico X y traducidos a caracteres legibles o acciones particulares. La pregunta es entonces, ¿qué códigos le asignamos a las dos teclas extras de la Travelmate 2480? Para determinar esto, simplemente debemos buscar códigos que estén libres en el mapa de teclado (keymap) actual.
En la documentación de Gentoo Linux al respecto nos dicen que los códigos de teclas apropiados generalmente se consiguen transformando los dos últimos dígitos del código de rastreo de hexadecimal a decimal y sumándoles 128. En mi caso, el € tiene el código de rastreo e033
y el $ tiene el código e034
. Haciendo las respectivas operaciones nos da que los códigos de teclas deberían ser 179 y 180.
Basta entonces con ejecutar:
$sudo setkeycodes e033 179 e034 180
Ahora el núcleo reconoce las teclas, pero X no sabe qué hacer cuando uno las presiona. Para indicar a X qué debe hacer cada vez que uno presiona las nueva teclas, se utiliza la aplicación xmodmap
, que permite modificar el mapa de teclado de X. Pero primero debemos averiguar cuáles son los códigos de tecla en X. ¿Pero no son 179 y 180, como indicamos arriba? No, X usa códigos distintios a los del núcleo. Pero no hay problema, para ello tenemos xev
, ejecutamos la siguiente orden, presionamos las dos teclas y luego cerramos la ventana:
$ xev | grep keycode |uniq
X connection to :0.0 broken (explicit kill or server shutdown).
state 0x0, keycode 36 (keysym 0xff0d, Return), same_screen YES,
state 0x0, keycode 246 (keysym 0x0, NoSymbol), same_screen YES,
state 0x0, keycode 251 (keysym 0x0, NoSymbol), same_screen YES,
El resultado anterior nos indica que los códigos que buscamos son 246 y 251. Ahora creamos un archivo llamado .Xmodmap en nuestro directorio HOME que contenga las siguientes líneas:
keycode 246 = EuroSign
keycode 251 = dollar
Finalmente ejecutamos:
$ xmodmap .Xmodmap
y listo, podemos ya usar las teclas € y $ tranquilamente. Lo único que falta es hacer permanente la asignación de códigos de tecla del núcleo (con setkeycodes
), para que sea activada cada vez que reiniciemos la computadora. Para ello, agregamos la orden setkeycodes e033 179 e034 180
al archivo /etc/rc.local
, el cual es ejecutado durante la secuencia de inicio por init
, que es precisamente lo que queremos.
Vale decir que todo lo anterior puede ser usado para cualesquiera teclas que el núcleo no reconozca, o para cambiar el significado de otras que nos parezcan mejor de otra forma. Por ejemplo, yo suelo cambiar el significado de la tecla de menú derecha a 'Multi_key' para usar las secuencias de composición (Compose key) y obtener toda una variedad de símbolos usando varias combinaciones de teclas, por ejemplo:
Multi_key A E = Æ
Multi_key A A = Å
Multi_key c , = ç
Las posibilidades son bastantes.
Bueno, espero que les sirva de algo este "tutorial" surgido de mi experiencia activando las teclas del € y $ en my Acer Travelmate 2480. Si notan algún error o cualquier cosa que pueda expandirse o mejorarse, no duden en dejarme un comentario.
URL para Referencias (pinche con el botón derecho y copie la dirección del enlace)