Teclas Muertas en el teclado y como remapearlas en Linux

HP G62 Teclado

HP G62 Teclado

Hace unos días a @helenna18 se le daño el teclado de su laptop. Una pc de la serie HP G62. El problema, según lo que he documentado que existe en la web, está en el hecho de que el circuito interno del teclado tiene cortocircuitos. Una solución es abrir el teclado y con pintura de plata reparar las pistas del circuito dañadas. Por otro lado también puede ocurrir que el teclado este sucio y exista polvo en la superficie de contacto, por lo que una limpieza no estaría de más. La otra solución, es comprar un teclado nuevo.

Pero como existe una distro GNU/Linux instalada ahí en esa PC, Ubuntu para ser específicos, me dispuse a solucionar el problema con un paliativo temporal: mapear teclas.

El problema específicamente era el siguiente: la barra de espacios no funcionaba. No escribía por más fuerte o prolongado que la pulsaras.

En X.org

Se hace a través de la utilidad xmodmap, esta utilidad solo funciona dentro de una sesión X.org, por tanto si estas en la TTY no te servirá. Para ver la distribución completa de los keycodes del teclado hacemos lo siguiente:

$ xmodmap -pke | more

Se mostrará una lista en este formato, y podremos ir descendiendo pausadamente:

$ keycode ### = tecla

Dentro de esa lista buscamos la tecla que vamos a reemplazar, en este caso espacio corresponde a esta línea:

$ keycode  65 = space NoSymbol space

Lo siguiente es saber con que tecla lo reemplazaremos, en este caso elegí el Alt derecho por cuestiones de proximidad.

$ keycode  108 = ISO_Level3_Shift NoSymbol ISO_Level3_Shift

Otra manera de saber a que tecla vamos a reemplazar, es usando xev

$ xev

se mostrará una ventana y en la terminal saldrá un output de todo lo que hagas, si mueves el mouse, si presionas algo, etc. En este caso con ella identifique el keycode de la tecla Alt derecho que no lo encontraba en la lista anterior. Lo que haremos ahora es hacer el switch:

$ xmodmap -e 'keycode 108 = space'

Como ese cambio es temporal, al iniciar sesión tendríamos que hacer lo mismo, así que lo mejor será guardarlo como script de arranque para que este activo siempre, abrimos un editor de texto plano y lo guardamos como teclado.sh

#/bin/sh

xmodmap -e ‘keycode 108 = space’

Necesitamos darle permisos de ejecución,

$ chmod +x teclado.sh

En Gnome 3 vamos a Aplicaciones al inicio, teclear en la terminal

$ gnome-session-properties

Le damos Añadir y rellenamos lo que esta ahí, en programa buscamos el script que acabamos de crear. Eso es todo.

En las TTY

Usaremos loadkeys, necesitaremos un archivo parecido al anterior, solo que esta vez lo añadiremos al script /etc/rc.local. Si queremos ver los keycodes en la consola:

$ dumpkeys | more

Podemos ir bajando poco a poco hasta encontrar lo que necesitamos, o bien usamos showkeys que nos muestra los keycodes de las teclas que presionamos:

$ showkeys

Para salir de showkeys, dejarlo quieto por unos segundos hasta que el mismo se cierre. Una vez identificamos lo que vamos a reemplazar, en mi caso el keycode de la barra espaciadora es 57, vamos al archivo /etc/rc.local

# nano /etc/rc.local

Al final añadimos esta línea

loadkeys 'keycode 57 = space'

Guardamos y listo, habremos terminado.

Anuncios

Un comentario en “Teclas Muertas en el teclado y como remapearlas en Linux

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s