Tutorial – Menus contextuales en KDE


El objetivo de este tutorial/manual es servir como referencia para poder manejar libremente los menus contextuales de KDE, más concretamente los que usa el navegador konqueror (siendo usado para explorar los ficheros de la máquina), ya que ocurre con bastante frecuencia que vemos bastante limitadas las opciones que ofrece a la hora de aplicar acciones determinadas a ciertos tipos de ficheros.

kde_usuario_final logo_konqueror

Lo primero que tenemos que hacer es crear el directorio “servicemenus” dentro de /.kde/share/apps/konqueror/ que a su vez se encuentra en el directorio home de cada usuario. Si usamos kubuntu feisty probablemente ya esté creado sin contenido ninguno.

Dentro de dicho directorio habrá que meter ficheros .desktop (uno por cada acción o grupo de acciones que queramos añadir), que tienen una gramática determinada para ser reconocida por el sistema, y que explico a continuación:
[Desktop Entry]
ServiceTypes=
Actions=
TryExec=
Icon=

[Desktop Action ]
Name=
Name[es]=
Exec=

Código de inicio del bloque
Tipos de ficheros/directorios sobre los que se aplicará la acción (*ver nota)
Identificador único de las acciones para el segundo bloque (más abajo)
El programa que se ejecutará en línea de comandos (sin opciones)
Icono que veremos en el menú

Código de inicio del bloque secundario (uno por acción)
Nombre que aparecerá en el menú contextual
Igual pero en castellano (por si cambiamos el idioma de KDE)
El comando que se ejecuta con todas las opciones que queramos
*Nota: para indicarlo se usarán los “mimetypes”, los más importantes son los siguientes:
directorios -> inode/directory. todos los ficheros -> all/all. todos los ficheros pero no para directorios -> all/allfiles. toda una categoria (imágenes) -> image/*

Una de las opciones que yo personalmente echaba en falta era la posibilidad de añadir a una lista de reproducción de amarok un directorio entero sin necesidad de acudir al menú “Abrir con ...” y tener que buscarlo en la lista de programas dentro del grupo multimedia. Por todo ello voy a poner como ejemplo el .desktop que uso yo para estos menesteres:
[Desktop Entry]
ServiceTypes=inode/directory
Actions=reproducir
Icon=amarok

[Desktop Action reproducir]
Name=Play in Amarok
Name[es]=Reproducir en Amarok
Exec=amarok %U
Como todo usuario avispado de Linux habrá podido comprobar, esto es totalmente configurable y podremos aplicar incluso acciones personalizadas sobre los ficheros si creamos scripts y los ejecutamos como si estuviéramos en línea de comandos (después de “Exec=” se puede poner lo que sea, mientras esté en la variable PATH).

He podido comprobar, en contra de lo que pensaba en un principio, que aunque situemos el .desktop en el directorio de configuración de konqueror para KDE, las acciones de los menús contextuales se hacen extensibles al escritorio, lo cual me parece perfecto, ya que la mayoría de los usuarios lo usan de forma similar al konqueror y esperan tener las mismas opciones que en dicho navegador.

Tags de Technorati: , , , .

vidalmb_admin – Mié, 12/09/2007 – 16:40