La Gaceta de Linux ...¡ haciendo a Linux un poco más divertido !

Cómo usar los botones multimedia del teclado en Linux

Por Tom Brown

Traducción al español por José Manuel Pérez
el día 31 de Enero de 2005, para La Gaceta de Linux

Muchos de los que migran de Windows a Linux tienen un teclado de Windows con botones adicionales a lo largo del mismo. Algunos de estos botones controlan el navegador, mientras que otros controlan la reproducción de audio/vídeo. Como habréis descubierto ya, estos botones no trabajan en Linux. Al menos, no por defecto.

El problema con estos botones es que, aunque se comunican con el ordenador vía keycodes (códigos de teclas) como las teclas normales, estos códigos no son ASCII estándar. Por ejemplo, el teclado Natural Keyboard Pro de Microsoft utiliza dos keycodes para cada tecla presionada. El primer código es un flag para indicar que el siguiente identificará qué tecla ha sido presionada.

El proceso que voy a describir está tomado de la versión 3.2 de KDE. Las versiones anteriores a ésta carecen de la interfaz KHotKeys, que las más recientes tienen.

Haz que KDE identifique tu teclado

El primer paso es cerciorarte de que tu teclado está identificado correctamente en KDE. Ve al centro de control de KDE - lo encontrarás enumerado en "KMenu" (pulsa el icono de lo que sería el "Inicio" en Windows). Una vez que el centro de control esté cargado, haz click sobre Región y Accesibilidad (o puede ser llamado "accesibilidad" en otras distribuciones de Linux - Mandrake o similar, por ejemplo) en el panel izquierdo, el contenido del cual cambiará. En esta nueva lista, elige "Disposición del teclado". Ahora en el panel derecho, ve a la pestaña de "diseño" (o "disposición"), y asegúrate de que la opción de "Activar diseños de teclado" está seleccionada. Baja por la lista de modelos y elige el tuyo. Quizás ponga algo como "Genérico 101-teclas PC". Encontrarás muchos modelos de teclados enumerados, de muchos fabricantes, así que esperemos que el tuyo se encuentre ahí también. En mi caso, seleccioné "Microsoft Natural Keyboard Pro / Microsoft Internet Keyboard Pro".

Ahora viene la parte divertida. Con tu teclado ya identificado correctamente, KDE reconocerá esos botones adicionales del teclado cuando los pulses. Todo lo que tienes que hacer es decirle cómo traducirlos a la acción apropiada. La técnica que voy a mostrar implica el uso de un programa de KDE llamado "KHotKeys". Algunas personas dicen que una acción como cambiar el volumen del audio se haría más correctamente usando el programa "KMix" (un mezclador de audio). Desafortunadamente, esto no funcionó en mi caso. Cada vez que subía o bajaba el volumen principal en KMix, en vez de controlar el volumen en mi tarjeta Sound Blaster Live, hacía cambios funky en el tono. Si KMix te va bien, entonces úsalo para controlar el volumen. La otra razón por la que lo hice a mi manera, y no hice caso de esas recomendaciones, es porque quería todos mis cambios en un único lugar.

KHotKeys

Ahora mismo tienes activado "diseño de teclado" en el centro de control de KDE en el lado izquierdo de la pantalla. Mueve el ratón a "KHotKeys" al final de la lista. Si esto no está en ningún sitio de la lista, cerciórate de que estás utilizando KDE 3.2 o más reciente (la versión de KDE que estás ejecutando aparecerá en el panel derecho del centro de control cuando lo abras al principio. Pulsa sobre "KHotKeys", y el panel derecho contendrá la pantalla de la configuración de KHotKeys.

KHotKeys es un potente programa que permite definir las acciones que corresponden a ciertos botones del teclado. También permite asignar acciones a los movimientos del ratón. Estamos interesados, sin embargo, en cómo asignar una acción a la pulsación de una tecla - y, por extensión, a la pulsación de uno de esos botones Multimedia.

Ejecutar un programa

Haremos primero algo sencillo. Muchos teclados tienen un botón marcado como "correo". Vamos a definir una acción para ese botón de modo que lance el módulo de email de Mozilla. Primero, haz click en el botón marcado como "Nueva acción" en la parte de abajo de la pantalla de configuración. Bajo "Nombre de la acción" en la pestaña "General", substituye la "Nueva acción" por algo fácil de recordar, como "correo". Despliega la lista de "Tipo de la acción", y selecciona "Acceso rápido de teclado - > Comando/URL (simple)". Cerciórate de que la casilla "Desactivar" esté vacía. Introduce lo que quieras en el cuadro de texto "Comentario". Ve a la pestaña del "Acceso rápido de teclado", y haz click con el ratón en el único botón de la pestaña. Verás una ventana de diálogo. Presiona el botón del "correo" en el teclado, y la ventana de diálogo desaparecerá. Con mi teclado, esto da lugar al botón que muestra "XF86Mail". Ve a la pestaña de "Preferencias de comando/URL". Escribe la orden del comando que se ejecutará, incluyendo la trayectoria completa, y cualquier argumento. Para hacer funcionar el módulo de correo de Mozilla 1.6 en mi máquina, utilicé el comando siguiente:

/opt/mozilla/run-mozilla.sh /opt/mozilla/mozilla-bin -mail

Dependiendo de qué programa (o script de shell) estés ejecutando, el comando se podrá complicar más o menos respecto a éste. Si sólo quiero hacer funcionar el navegador de Mozilla (para el botón del "Web", por ejemplo), habría utilizado:

/opt/mozilla/mozilla

Usar DCOP para controlar un programa en ejecución

DCOP o protocolo de comunicaciones de escritorio, es una forma genérica para que las aplicaciones se comuniquen entre sí. Habrás visto esta clase de cosas en Windows, que utiliza una tecnología llamada automatización de OLE (una parte de "COM", o "Modelo Común del Objeto"). DCOP es el método que utilizaremos para enviar comandos a un programa que ya se esté ejecutando.

En la pestaña "General" de KHotKeys, crea una nueva acción, y fija el "Tipo de la acción" a "Acceso rápido de teclado - > llamada a DCOP (simple)". En la pestaña "Acceso rápido de teclado", identifica el botón que quieres utilizar, tal y como hiciste en el ejemplo anterior. Después, la pestaña de "Preferencias de llamada a DCOP" puede parecer un poco confusa si nunca antes has trabajado con DCOP. En la parte inferior de la ventana hay un botón etiquetado como "Ejecutar KDCOP". Kdcop es una aplicación GUI que permite echar un vistazo a las funciones accesibles expuestas por todas las aplicaciones que se están ejecutando, en forma de árbol. Haz click en el botón para arrancar kdcop. Ejecuta el programa que desees controlar, localiza su nombre en kdcop, y haz click en el icono del signo de "más" al lado del nombre para expandirlo.

Para este ejemplo, voy a utilizar Jukebox (o "Juk"), un reproductor de sonido que viene con muchas distribuciones de Linux. Cuando expandas la entrada "juk" en kdcop, verás cinco entradas más. Para este ejemplo, deseamos el que está nombrado como "player". Ampliando este nodo del "player", vemos una lista larga de las llamadas de función soportadas. Ahora todo lo que tenemos que hacer es encontrar las cosas que deseamos controlar. Digamos que queremos el botón que hace que juk comience a reproducir música. Despliega la lista hasta que veas el "void play()". Esto parece cosa de programadores, ¿no es así? No te preocupes, no tienes por qué saber lo que siginifica todo eso para poder hacer uso de ello. Es fácil.

Copia la entrada superior del árbol (en este caso, tipo "juk") en el cuadro de texto de "Aplicación remota". Ahora, copia la entrada siguiente del nodo del árbol (en este caso, escribe "player") en el cuadro de texto de "Objeto remoto". Finalmente, copia el comando, sin el "void", o paréntesis (en este caso, tipo "play") en el cuadro de texto de "función llamada". Observa que todos estos campos diferencian entre mayúsculas y minúsuculas.

Tanto kdcop como el Centro de Control de KDE soportan arrastrar-y-soltar, así que también podrías haber hecho click y arrastrar "void play()" a la ventana de KHotKeys, y soltarlo en cualquiera de los cuadros de texto a rellenar. Esto da lugar a "Reproducción dcop del reproductor juk " (observa el espacio al final) que es pegado en el cuadro de texto. Ésta es una manera fácil de conseguir las tres entradas que necesitas en la pestaña "Preferencias de llamada a DCOP". Para este ejemplo, teclea "juk" en el cuadro de "Aplicación remota", "Player" en "Objeto remoto", y "play" en "función llamada". Ahora, si lo has hecho tal y como yo lo hice, y has arrastrado todo en "Función llamada", borrando todo hasta la palabra "play", entonces has cometido el mismo error que yo cometí. Por alguna razón, el sistema agrega un espacio en el extremo del texto, así que el sistema busca un comando llamado "play " en vez de "play", y el botón no funcionará. Usar arrastrar-y-soltar aquí es más un problema que algo que valga la pena, en mi opinión. Sería agradable que tan sólo se debiera soltar la entrada en la pestaña, y tener todos los campos rellenados automáticamente, pero no es así como trabaja en este momento.

Traducir un botón a un keypress estándar

Si la aplicación que estás intentando controlar no soporta DCOP, entonces tienes que simular que tecleas una combinación de teclas específica en una pulsación del botón. Por ejemplo, si estás utilizando Mozilla 1.6, no puedes utilizar el método de DCOP para controlar el navegador. Afortunadamente, puedes convertir un botón en los keypress estándares que Mozilla entiende. Una vez que hayas creado una nueva acción para KHotKeys, selecciona un "Tipo de la acción" de "Acceso rápido de teclado - > entrada de teclado (simple)" de la lista desplegable de la pestaña "General". En la pestaña "Acceso rápido de teclado", identifica el botón que deseas utilizar, tal y como has hecho con los ejemplos de arriba. En la pestaña "Preferencias de la entrada de teclado" introduce las combinaciones de teclado a las que desees traducir el botón. Las teclas especiales tienen que ser escritas completamente. Por ejemplo, para mostrar tu página de inicio en Mozilla 1.6, mantienes la tecla del "Alt", mientras presionas la tecla de "Home". Pues escribe esto en el campo de "Entrada de teclado" como (sin comillas, y sin ningún espacio): "Alt+Home". Advertencia: esta traducción de botón a tecla no diferencia en qué aplicación estás. Piensa en lo que estás haciendo antes de que asignes la entrada de teclado para evitar resultados inesperados. Observa que esto no está limitado a un combinación de teclas. Podrías utilizar "Hola Mundo" si quisieras.

 


[BIO] Tom es desarrollador de software desde los tempranos días del Comodoro 64, con esas obras clásicas como Prototerm-64 y Colorez-128, y ha visto montones de sistemas operativos aparecer y desaparecer. Todo sistema operativo que le ha gustado ha acabado por no continuarse (OS/2) o ser eliminado (Comodoro Amiga). Ahora mismo le gusta Linux Red Hat, que no será actualizado a partir de abril de 2004. Consecuentemente, hemos estado intentando que se enamorara de Windows, pero hasta ahora no ha habido suerte.

Derechos de Autor © 2004, Tom Brown. Editado bajo la Open Publication License

Publicado en el Número 104 de la Gaceta de Linux, Julio de 2004