Archivos de escritorio: poner su aplicación en los menús del escritorio

Para ejecutar aplicaciones desde GNOME, los usuarios pulsan en iconos de sus escritorios o seleccionan las aplicaciones que quieren ejecutar de un menú. Por ello, el primer paso para integrar un programa existente con GNOME es registrarlo con el conjunto de aplicaciones que los usuarios pueden ejecutar.

A diferencia de Windows o Mac OS, en GNOME los menús de usuario se construyen automáticamente desde la lista de aplicaciones registradas. Cada aplicación publicada especifica un conjunto de categorías alas que pertenece, y la configuración del menú del sistema las ordena y gestiona. Este mecanismo sigue los estándares de escritorio y de menú de freedesktop.org

Aunque es común en otros escritorios, no se recomienda crear su propio submenú específico para su aplicación. En su lugar, proporcione un elemento de menú para cada aplicación que empaquete. Los elementos adicionales como los archivos de ayuda, los ficheros LÉEME, o enlaces a su página web se pueden empotrar en la aplicación web en si.

En GNOME y algunos otros escritorios que cumplen el estándar de freedesktop.org una aplicación se registra en los menús del escritorio a través de un archivo de escritorio que es un archivo de texto con la extensión .desktop. Este archivo de escritorio contiene una lista de la configuración de la aplicación. El escritorio obtiene la información del archivo y lo usa para:

  • poner la aplicación en el Menú principal. Para ver una lista de las categorías válidas, consulte la especificación del menú del escritorio de FreeDesktop.org.
  • liste la aplicación en el diálogo Ejecutar aplicación....
  • cree los lanzadores apropiados en el menú o en el escritorio.
  • asocie el nombre y la descripción de la aplicación.
  • use el icono apropiado.
  • reconozca el tipo MIME que soporta para abrir archivos.

Para añadir una entrada de menú para su aplicación cree un archivo de escritorio. Debería tener un nombre de archivo único y no existen límites de longitud para evitar abreviaciones y así se sienta libre para incluir nombres de marcas. No obstante no ponga espacios o caracteres internacionales en el nombre de archivo. Por ejemplo «empresafoo-graficos-pro.escritorio» sería un buen nombre de archivo pero «efgp.desktop» sería un mal nombre, así como «Empresa Foo Gráficos Pro.desktop». El archivo debería estar codificado en UTF-8, y parecerse a la siguiente plantilla:

	[Desktop Entry]
	Name=FooCorp Painter Pro
	Exec=foocorp-painter-pro
	Icon=foocorp-painter-pro
	Type=Application
	Categories=GTK;GNOME;Utility;
	

Estos archivos .desktop contienen metadatos acerca de su aplicación y juegan un rol central en la integración del programa con GNOME y otros escritorios que cumplen con los estándares. La plantilla que aquí se presenta es la más básica posible. El archivo se puede traducir lingüísticamente de tal forma que el nombre de su aplicación pueda aparecer en el idioma nativo del usuario.

Ponga este archivo en la carpeta /usr/share/applications para que sea accesible por todo el mundo, o en ~/.local/share/applications si quiere que sólo sea accesible para un usuario. Esto se usa dependiendo de si su aplicación se instaló en el sistema o bien en la carpeta de un usuario. GNOME monitoriza esas carpetas, así que simplemente copiar el archivo a la ubicación correcta es suficiente para registrarlo en el escritorio. 1

Cada archivo de escritorio debe seguir el mismo formato. Se muestra un ejemplo básico de un archivo de escritorio en la Ejemplo 1-1. El archivo está dividido en dos secciones, cada una de ellas comienza con la sección de descripción entre corchetes. En este ejemplo sólo se muestra una sección como la esencial para integrar su aplicación en el escritorio. Entre cada sección, la parte de cada línea antes del signo igual es la clave, mientras que la segunda es el valor. Se muestra una explicación de cada línea en la Tabla 1-1.

A parte de la primera línea que identifica el archivo de escritorio, el orden de las líneas no es importante En la Ejemplo 1-1 la línea Type=Application podría estar en la segunda fila, la quina o la última y el resultado sería el mismo.

No obstante, las claves distinguen entre mayúsculas y minúsculas. Type=Application no es lo mismo que type=Application o TYPE=Application.

Ejemplo 1-1Archivo de escritorio de ejemplo
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Nombre de ejemplo
Comment=Una aplicación de ejemplo
Exec=aplicacion
Icon=aplicación.png
Terminal=false
Tabla 1-1Explicación línea a línea
Línea Descripción
[Desktop Entry] La primera línea de todo archivo de escritorio y la sección de cabecera para identificar el bloque de los pares de claves asociados con el escritorio. Necesario para que el escritorio reconozca el archivo correctamente.
Type=Application Le dice al escritorio que este archivo de escritorio pertenece a una aplicación. Otros valores válidos para esta clave son Link y Directory.
Encoding=UTF-8 Describe la codificación de las entradas en este archivo de escritorio.
Name=Nombre de ejemplo de una aplicación Da el nombre a su aplicación para el menú principal y cualquier lanzador.
Comment=Una aplicación de ejemplo Describe la aplicación. Usado como consejo.
Exec=application El comando que inicia la aplicación desde una consola. Puede tener argumentos.
Icon=application.png El nombre del icono asociado con esta aplicación.
Terminal=false Describe si la aplicación se debería ejecutar en un terminal.

1.1.1. Iniciar su aplicación

Si su aplicación puede llevar argumentos de la línea de comandos, puede detallarlo usando los campos mostrados en la Tabla 1-2.

Tabla 1-2Variables de ejecución
Añadir… Acepta...
%f un sólo nombre de archivo.
%F múltiples nombres de archivo.
%u un sólo URL.
%U múltiples URL.
%d una sola carpeta. Usado junto con %f para ubicar un archivo.
%D múltiples carpetas. Usado junto con %F para ubicar archivos.
%n un sólo nombre de archivo sin ruta.
%N múltiples archivos sin rutas.
%k un URI o nombre de archivo local para la localización del archivo de escritorio.
%v el nombre del dispositivo de entrada.

1.1.2. Idiomas extranjeros

Para crear nombres y comentarios localizados se deben añadir líneas adicionales para cada local necesaria. Por ejemplo, para añadir la versión en español del comentario, añada la siguiente línea:

Comment[es]=Ejemplolnombredelprograma

No existen límites en el número de traducciones para el archivo.

Ya que mantener una larga lista de traducciones en un archivo es muy ineficaz, una mejor forma de crear estas traducciones es usar el paquete intltook. Para obtener más información consulte las páginas del manual de intltool-extract y intltool-merge.

1.1.3. Referencias

Especificación de entradas de escritorio; Especificaciones para crear un archivo de escritorio.

1

Note que la ubicación ~/.local/share/applications no está monitorizada por las versiones de GNOME anteriores a 2.10 o en las versiones anteriores a la 2.8 en Fedora Core Linux. Estas versiones de GNOME siguen el estándar obsoleto vfolder, y por ello los archivos de escritorio se deben instalar en ~/.gnome2/vfolders/applications. Esta ubicación no está soportada por GNOME 2.8 en Fedora Core ni en GNOME 2.10, así que para una máxima compatibilidad entre escritorios, ponga el archivo en ambas ubicaciones.

Note que el Escritorio KDE requiere una ejecución de kbuildsycoca para forzar el refresco de los menús.