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 .
- 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.
[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
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
- 1.1.2. Idiomas extranjeros
- 1.1.3. Referencias
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.
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.
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.