Linux: Activando teclas extras en KDE

Normalmente cuando instalamos Linux nos damos cuenta que algunas teclas o combinaciones de teclas han dejado de funcionar, usualmente se trata de (en especial las portátiles) las teclas de control de volumen, correo, navegación, et cetera.

Por lo general al común denominador de usuarios que han llegado hasta ese punto les suele importar muy poco el asunto, si el botonsito de subir el volumen no funciona pues pongo el puntero sobre el icono de Amarok, muevo el scroll y listo... El problema son las mujeres, si tienes una novia o esposa va a estar más feliz si todo lo que ve al frente de ella funciona, y si estas leyendo esto probablemente ya sabes la importancia de mantener a tu pareja feliz.

En palabras cortas lo que hace falta es identificar el código de esos botones o teclas, etiquetarlos como teclas útiles y por último decirle al gestor de escritorio que hacer con él. Haremos la prueba con mi portátil, que cuenta con 3 teclas que en la actualidad no funcionan, subir el volumen, bajar el volumen y silenciar todo.

* Requisitos: Linux, X Server, KDE

* Identificar el código de tecla

Para identificar el código del botón o tecla usamos el comando 'xev' disponible con la instalación estándar del X Server (ya sea XFree86 o x.org), al ejecutar dicho comando debemos dejar el ratón quieto y presionar la tecla deseada, lo que aparecerá en pantalla será algo como esto:

KeyPress event, serial 31, synthetic NO, window 0x3800001,
    root 0x4c, subw 0x0, time 2153449693, (-323,355), root:(275,378),
    state 0x0, keycode 174 (keysym 0x0, NoSymbol), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

La parte importante es el “keycode”, para mi caso: subir el volumen es 176, bajar el volumen es 174 y silenciarlo todo es 160. Una vez tengamos estos valores apuntados en nuestro editor de texto favorito podemos pasar al siguiente paso.

* Etiquetar el código de tecla como teclas útil

Esta configuración, al igual que la anterior, es enteramente responsabilidad del X Server, para ello creamos un file dentro del directorio del usuario con el nombre .xmodmaprc. (en mi caso /home/paco/.xmodmaprc) y lo llenamos con la siguiente información:

keycode 176 = F13
keycode 174 = F14
keycode 160 = F15

Les he puesto el nombre de F13, F14 y F15 porque mi teclado solo tiene hasta la F12 y decidí continuar a modo de ejemplo, pero puedes ponerle el nombre que gustes, para que los cambios tengas efecto es necesario reiniciar la X... por supuesto, es broma, que esto no es Win2. Ejecutamos el comando xmodmap ~/.xmodmaprc y comprobamos los resultados en el con el xev otra vez, si prestas atención verás las diferencias.

Para que los cambios se realicen cada vez que reiniciamos la X debemos agregar lo siguiente al archivo ~/.xsession:

if [ -f ~/.xmodmaprc ]; then
   xmodmap ~/.xmodmaprc
fi

También puedes guardar esto como xmodmap.sh darle permisos de ejecución (chmod +x xmodmap.sh) y moverlo al directorio ~/.kde/Autostart/ (crea el directorio en caso que no exista).

* Configurar nuestras nuevas teclas en KDE

Esta parte depende enteramente del gestor de ventanas/escritorio para mi caso KDE, pero seguro encontrarás documentación para cualquier.

Ir al panel de control, luego accesibilidad y región, posteriormente a acciones de entrada, y creamos una nueva acción para cada tecla especial, en nuestro caso la opción de silenciar todo tiene por nombre “VolMute” es de tipo “llamada DCOP”, corresponde a la tecla rápida F15 y en la configuración DCOP, que sería la señal que se va a enviar llenamos los siguientes valores para aplicación remota; kmix, objecto remoto: Mixer0; función a llamar: toggleMute; Argumentos: 6. Por último repetimos lo mismo para las otras dos acciones.

Estos valores corresponden a los de mi configuración, hay dos botones muy útiles, uno de prueba y el de ejecutar el ayudante KDCOP, el cual te permite ver todas las aplicaciones con sus respectivas llamadas válidas que puedes usar.