lunes, 24 de agosto de 2009

Recuperar función de teclas muertas en Jaunty (y, en una de esas, resucitarlas)

Esta entrada es para describir como solucioné el problema de la función de una tecla en Ubuntu y contar cómo resolví la disfuncionalidad asociada a nivel de hardware.

La semana pasada me llevé una desagradable sorpresa cuando al intentar cambiar la opción del menú de Grub desde Winbugs (opción predeterminada) a Ubuntu, en cierto notebook, la tecla correspondiente no me respondía. Pensé que podía ser problema de arranque, así que reinicié. Pero el resultado fue el mismo: no funcionaba.

En primer lugar, intenté descartar un problema de software, así que entré a XP y la tecla seguía sin funcionar. En Ubuntu tampoco andaba ni en la bios. Por lo tanto, deduje que era altamente probable que fuera un fallo de hardware, así que me di la tarea de googlear para ver situaciones similares. No encontré nada. Al final contaré una hipótesis de por qué sucedió este desperfecto, pero antes describiré como solucioné el problema de la función de la famosa tecla.

La susodicha en cuestión es la "Up" o "arriba" y en Ubuntu la usaba para ubicarme dentro de los archivos, para moverme con facilidad en los textos en Evince, además de servirme para recordar los comandos en consola. La empecé a extrañar rápidamente. Al buscar sobre la temática de modificación del teclado encontré fácilmente una guía para cambiar el keymap (mapa de teclado), que era lo que deseaba hacer.

En el tutorial recomendaban el programa Xkeycaps que se encuentra en los repositorios de Ubuntu Jaunty, así que de inmediato se puede instalar con un "sudo apt-get install xkeycaps"o "sudo aptitude...". Luego de echarlo a andar, se elige el tipo de teclado (marca, tipo e idioma) y pronto aparece la imagen de un keyboard que debiera ser similar al que deseamos modificar. En la guía explican cómo replicar funciones de tecla y cambiar ciertos caracteres. En mi caso pensaba que podía servir la réplica de tecla...

Posterior a seguir la guía me di cuenta que no me funcionaba. El primer problema era que el teclado del notebook no se correspondía al de la imagen y las teclas tampoco (había algunas que no estaban en la imagen y viceversa). Hice varios intentos más y desistí de trabajar cómo me recomendaban en la página.

Empecé a revisar el archivo que creaba el programa al modificar el teclado: "/home/nombre_usuario/.xmodmap-nombredemaquina". El archivo en cuestión tenía la siguiente estructura: "keycode 0x43 = F1 XF86_Switch_VT_1 F1 XF86_Switch_VT_1 F1 XF86_Switch_VT_1" Primero está el código de la tecla, luego el nombre de función y códigos que desconozco.

Lo que realicé fue reemplazar está línea: "keycode 0x45 = F3 XF86_Switch_VT_3 F3 XF86_Switch_VT_3 F3 XF86_Switch_VT_3" por esta otra "keycode 0x45 = Up NoSymbol Up NoSymbol Up" Noten que mantuve el código de la tecla (0x45). En realidad está línea no estaba en el archivo, así que tuve que suponerla a partir de la línea de Left. Luego de realizar el cambio deseado, creo que es conveniente borrar las demás líneas (o comentarlas) por si generan algún cambio de función no deseado (recuerden que mi teclado no se correspondía al del programa).

Ahora cito la guía que ya mencioné:
Para que en los siguientes inicios de sesión se cargue el keymap modificado vamos a poner un comando en el bashrc o profile, según como te interese. Simplemente hay que ejecutar el programa xmodmap pasándole como parámetro la ruta del archivo.

Con permisos de root ejecutas el siguiente comando:

echo “xmodmap /home/alvaro/.xmodmap-flanders” >> /etc/profile

Con esto añadimos al final del archivo /etc/profile el comando. Recuerda cambiar mis datos por los tuyos. Así afectará a todos los usuarios pero si sólo quieres que te afecte a ti cambia /etc/profile por ~tusuario/.bash_profile

Y ya está, cuando vuelvas a iniciar sesión se cargará automáticamente el keymap modificado. (http://www.congdegnu.es/2008/12/28/cambiar-letras-del-teclado-personalizar-el-keymap-vaya/)

Al volver a entrar al escritorio de Gnome me apareció un menú. En realidad me preguntaba por cual de dos archivos deseaba usar. Elijan el que no termine en .bak (que es la copia de seguridad).

Antes de entrar al tema de hardware les daré un consejo para reconocer el keycode de determinada tecla. Pongan el cursor sobre la que quieren conocer el código. En la parte superior del programa, primera línea, aparecerá lo deseado.

Ahora comentaré sobre el hardware. Un amigo linuxero me contó que usualmente se le morían teclas. Decía que era por migas de pan que se atascaban. Lo encontré raro, pero probé usando una sopladora sobre el teclado del notebook. ¡Y funcionó! Así que si se les muere una tecla, ya saben.

Saludos

No hay comentarios:

Publicar un comentario