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:

  • pónga la aplicación en el Menú principal.
  • 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]
	Encoding=UTF-8
	Name=FooCorp Painter Pro
	Exec=foocorp-painter-pro
	Icon=foocorp-painter-pro
	Type=Application
	Categories=Application;
	

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.

Place this file in the /usr/share/applications directory so that it is accessible by everyone, or in ~/.local/share/applications if you only wish to make it accessible to a single user. Which is used should depend on whether your application is installed systemwide or into a user's home directory. GNOME monitors these directories for changes, so simply copying the file to the right location is enough to register it with the desktop. 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 Tells the desktop that this desktop file pertains to an application. Other valid values for this key are Link and Directory.
Encoding=UTF-8 Describe la codificación de las entradas en este archivo de escritorio.
Name=Sample Application Name Da el nombre a su aplicación para el menú principal y cualquier lanzador.
Comment=A sample application 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 a single directory. Used in conjunction with %f to locate a file.
%D multiple directories. Used in conjunction with %F to locate files.
%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[sv]=Exempelprogramnamn

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

Desktop Entry Specification — Specifications for creating a desktop file.

1

Note that the ~/.local/share/applications location is not monitored by versions of GNOME prior to version 2.10 or on Fedora Core Linux, prior to version 2.8. These versions of GNOME follow the now-deprecated vfolder standard, and so desktop files must be installed to ~/.gnome2/vfolders/applications. This location is not supported by GNOME 2.8 on Fedora Core nor on upstream GNOME 2.10 so for maximum compatibility with deployed desktops, put the file in both locations.

Note that the KDE Desktop requires one to run kbuildsycoca to force a refresh of the menus.