Menús contextuales en KDE
Como siempre, un poco de investigación da sus frutos.
Parece ser que existen unos archivos .desktop que le indican a KDE éste tipo de cosas. Pertenecen a una especificación abierta de FreeDesktop a la que parece que tanto Gnome como KDE están adscritos, con mayor o menor grado de implementación, llamado Desktop Entry Specification. Gracias a ésta especificación se pueden describir acciones a realizar sobre cada tipo de archivo. No es la única utilidad que tiene, ya que su propósito es más amplio; como comentan en su sitio web, los ficheros .desktop describen información sobre aplicaciones, como el nombre, icono y descripción. Presumo que entre estas informaciones se incluye el como tratan las aplicaciones cada tipo de archivo.
En el caso del manejo de archivos, se trata de crear un nuevo archivo .desktop en el direcotrio '/usr/share/apps/konqueror/servicemenus' si queremos que la acción del menú contextual esté disponible para todos los usuarios o en '$HOME/.kde/share/apps/konqueror/servicemenus' si lo que queremos es que sólo lo vea un usuario determinado.
Creamos, por tanto, en el directorio deseado, el archivo accionesXMMS.desktop, con el siguiente contenido:
[Desktop Entry]Veamos la utilidad de cada sección y parte:
Actions=encolar_en_XMMS;encolar_en_XMMS_inmediato;reproducir_en_XMMS
Icon=
ServiceTypes=audio/x-mp3,audio/x-vorbis,audio/vorbis,audio/x-wav,audio/wav,audio/mpegurl,audio/x-ms-wma,inode/directory
[Desktop Action encolar_en_XMMS]
Exec=xmms -e %F
Icon=sound
Name=Enqueue in XMMS
Name[es]=Encolar en XMMS
[Desktop Action encolar_en_XMMS_inmediato]
Exec=xmms -Q %F
Icon=sound
Name=Enqueue in XMMS inmediatly
Name[es]=Encolar en XMMS inmdediatamente
[Desktop Action reproducir_en_XMMS]
Exec=xmms %F
Icon=sound
Name=Play in XMMS
Name[es]=Reproducir en XMMS
- [Desktop Entry]: Nodo principal del archivo, indica que en que consiste la entrada.
- Actions: Son cada una de las acciones que vamos a describir. Cada acción nombrada tendrá su propia sección más adelante
- Icon: Me temo que aún no sé para que vale. Evidentemente, especifica un icono.
- ServiceTypes: Indica sobre que tipo de archivos, especificados mediante MIME-Types, se aplica .
- [Desktop Action [nombre acción]: Nodo con la información de las acciones que se han descrito anterioremente.
- Exec: Comando a ejecutar cuando se selecciona ésta opción.
- Icon: Esta si la sé ;-P. Indica el icono que mostrará en el menú contextual. Sospecho que se indican nombres de iconos de manera que el sistema tendrá una lista y buscara el nobre en dicha lista. No sé muy bien dónde está esa lista, ni como añadir iconos, ni como saber como se llaman.
- Name: Texto que se mostrará en el menú contextual para representar ésta acción.
- Name[es]: Sospecho que es la versión traducida del campo anterior (es de español). Digo yo que si se tiene seleccionado el lenguaje español se mostrará éste texto, en vez del anterior (que debe ser el genérico).
Por último, unos enlaces de dónde ha salido ésta información. Tanto suy como melenas, de KDE-Hispano.org, tienen artículos al respecto:
- Añadir comandos al menú contextual de Konqueror (para rotar imagenes desde Konqueror) [suy]
- MD5 de forma gráfica con KDE [melenas]
- Comprobación de MD5 en botón derecho [melenas]
En BlogDRAKE también hablan al respecto, concretamente NeOnsKuLL retoma el artículo de melenas añadiendole funcionalidad:
Por cierto, existe otra especificación para la descripción de los menús: menu-spec.
Y por último, un enlace a la lista de parámetros (en realidad variables) que se pueden usar en la parte de Exec. En mi caso he usado %F, es decir, lista de ficheros seleccionados.