La mayoría de teclados que existen hoy día en el mercado incluyen un conjunto adicional de teclas para multimedia, por lo general, dedicadas a la navegación y al audio/video. KDE soporta por sí mismo muchos esquemas de teclado que incluyen este tipo de extensiones, pero no proporciona una forma sencilla de asignar una función a cada tecla. Aquí es donde entra en juego lineak, un pequeño demonio que monitoriza los botones especiales del teclado y asocia acciones a cada uno. Vamos a ver cómo sacarle partido integrándolo con KDE.
Lo primero que haremos es instalar el demonio y un conjunto de plugins que nos serán de utilidad:
Ejecutamos el demonio con la opción -l para ver una lista de todos los teclados soportados, y apuntamos el código que se corresponda con nuestro teclado. Por ejemplo, para un Logitech Cordless Desktop Pro el código es LTCDP. Procedemos a generar un archivo de configuración que luego modificaremos para nuestro esquema de teclado:
Generando un archivo de configuración
lineakd -c LTCDP
Editamos el archivo que acabamos de crear para configurarlo. La primera sección por lo general no hará falta tocarla. En mi caso he modificado el dispositivo de cdrom para que apunte a /dev/dvdrom. En el segundo bloque cada línea se corresponde con un botón en nuestro esquema de teclado, de forma que podemos asignar comandos o acciones a cada uno. En este caso usamos una combinación de comandos para el navegador (opera) con macros predefinidas de los plugins que hemos instalado. Podemos ver más en detalle las opciones del defaultplugin y las opciones de los plugins de KDE en la documentación de lineak.
~/.lineak/lineakd.conf
CdromDevice = /dev/dvdrom
Display_align = center
Display_color = 0aff00
Display_font = -adobe-helvetica-bold-r-normal-*-*-240-*-*-p-*-*-*
Display_hoffset = 0
Display_plugin = internal
Display_pos = bottom
Display_soffset = 1
Display_timeout = 3
Display_voffset = 50
KeyboardType = LTCDP
MixerDevice = /dev/mixer
Screensaver =
conffilename = /home/icarus/.lineak/lineakd.conf
keystate_capslock =
keystate_numlock =
keystate_scrolllock =
Go = opera -newpage
Internet = KMENU
Mail = opera -remote 'openComposer()'
Mute = KMIX_MUTE
Next = "EAK_MEDIADETECT(NEXT)"
Play|Pause = "EAK_MEDIADETECT(PLAYPAUSE)"
Previous = "EAK_MEDIADETECT(PREVIOUS)"
Search = opera -newpage g
Sleep = KDE_LOCK_DESKTOP
Stop = "EAK_MEDIADETECT(STOP)"
VendorHome =
VolumeDown = KMIX_VOLDOWN
VolumeUp = KMIX_VOLUP
Algunas de las opciones utilizan la macro EAK_MEDIADETECT(), que viene incluida en el defaultplugin. Esta macro permite que la acción asociada a una tecla varíe dependiendo de los programas en ejecución. Es muy útil cuando utilizamos, por ejemplo, varios reproductores multimedia, y queremos que las teclas funcionen igualmente en todos. Simplemente creamos un archivo llamado media-detect.conf en el directorio ~/.lineak/ y especificamos las aplicaciones, su precedencia, y las acciones asociadas. Por ejemplo, si queremos asociar las teclas multimedia con KsCD y amaroK:
~/.lineak/media-detect.conf
[KSCD]
NAME = Reproductor de CDs
PROGRAM = kscd
PLAY = CDPlayer play
STOP = CDPlayer stop
PAUSE =
PLAYPAUSE =
NEXT = CDPlayer next
PREVIOUS = CDPlayer previous
TYPE = dcop
PRIORITY = 1[END][AMAROK]
NAME = Amarok Media Player
PROGRAM =amarok
PLAY = AMAROK_PLAY
STOP = AMAROK_STOP
PAUSE = AMAROK_PAUSE
PLAYPAUSE = AMAROK_PLAYPAUSE
NEXT = AMAROK_FORWARD
PREVIOUS = <b>AMAROK_BACK
TYPE = macro
PRIORITY = 2[END]
Algunas cosas a tener en cuenta:
La aplicación con prioridad 1 será la primera en comprobarse, y el resto incrementalmente con menor prioridad.
El tipo varía dependiendo de la forma de interactuar con el programa. Algunos como amaroK o JuK traen macros predefinidas. Para estos programas usaremos el tipo macro y especificaremos las macros tal cual para cada botón. Para programas a los que debemos acceder mediante línea de comandos, como XMMS, utilizaremos el tipo program, y las acciones serán los parámetros a pasarle al programa. Para otras aplicaciones de KDE que no tengan macros podemos utilizar DCOP para acceder a ellas mediante el tipo dcop. Hablaremos más de ello más adelante.
El valor program tiene distintos significados dependiendo del tipo de aplicación. Para aplicaciones de tipo program especificará el nombre del comando a ejecutar, mientras que para aplicaciones DCOP especificará el nombre con el que se registra la aplicación en DCOP.
El uso de DCOP nos da una gran flexibilidad a la hora de asociar acciones a un botón, ya que nos permite ejecutar cualquier acción registrada por una aplicación. Mediante el comando dcop obtendremos una lista de las aplicaciones registradas actualmente. Con dcop aplicación veremos la lista de funciones agrupadas de la aplicación, y con dcop aplicación grupo podemos ver las funciones concretas. Por ejemplo, en amaroK las funciones de reproducción se encuentran en el grupo player:
26/03: Teclados multimedia en KDE
La mayoría de teclados que existen hoy día en el mercado incluyen un conjunto adicional de teclas para multimedia, por lo general, dedicadas a la navegación y al audio/video. KDE soporta por sí mismo muchos esquemas de teclado que incluyen este tipo de extensiones, pero no proporciona una forma sencilla de asignar una función a cada tecla. Aquí es donde entra en juego lineak, un pequeño demonio que monitoriza los botones especiales del teclado y asocia acciones a cada uno. Vamos a ver cómo sacarle partido integrándolo con KDE.Lo primero que haremos es instalar el demonio y un conjunto de plugins que nos serán de utilidad:
Instalando lineakd y plugins
Generando un archivo de configuración
~/.lineak/lineakd.conf
~/.lineak/media-detect.conf
- La aplicación con prioridad 1 será la primera en comprobarse, y el resto incrementalmente con menor prioridad.
- El tipo varía dependiendo de la forma de interactuar con el programa. Algunos como amaroK o JuK traen macros predefinidas. Para estos programas usaremos el tipo macro y especificaremos las macros tal cual para cada botón. Para programas a los que debemos acceder mediante línea de comandos, como XMMS, utilizaremos el tipo program, y las acciones serán los parámetros a pasarle al programa. Para otras aplicaciones de KDE que no tengan macros podemos utilizar DCOP para acceder a ellas mediante el tipo dcop. Hablaremos más de ello más adelante.
- El valor program tiene distintos significados dependiendo del tipo de aplicación. Para aplicaciones de tipo program especificará el nombre del comando a ejecutar, mientras que para aplicaciones DCOP especificará el nombre con el que se registra la aplicación en DCOP.
El uso de DCOP nos da una gran flexibilidad a la hora de asociar acciones a un botón, ya que nos permite ejecutar cualquier acción registrada por una aplicación. Mediante el comando dcop obtendremos una lista de las aplicaciones registradas actualmente. Con dcop aplicación veremos la lista de funciones agrupadas de la aplicación, y con dcop aplicación grupo podemos ver las funciones concretas. Por ejemplo, en amaroK las funciones de reproducción se encuentran en el grupo player:Consultando las funciones de amaroK
Si todo va bien...