Ficheiros de escritorio: poñer o seu aplicativo nos menús do escritorio

Para executar aplicativos desde GNOME, os usuarios premen en iconas nos seus escritorios ou seleccionan os aplicativos que queren executar desde un menú. Para iso, o primeiro paso para integrar un programa existente con GNOME é rexistralo co conxunto de aplicativos que os usuarios pode executar.

A diferenza de Windows ou Mac OS, en GNOME os menús de usuario constrúen automaticamente desde a lista de aplicativos rexistradas. Cada aplicativo publicado especifica un conxunto de categorías ás que pertencen, e a configuración do menú do sistema ordénaas e xestiona. Este mecanismo segue os estándares de escritorio e de menú de freedesktop.org

Aínda que é común noutros escritorios, non se recomenda crear o seu propio submenú específico para o seu aplicativo. No se lugar forneza un elemento de menú para cada aplicativo que empaquete. Os elementos adicionais como os ficheiros de axuda, os ficheiros LEAME, ou ligazóns á súa páxina web pódense empotrar no aplicativo en si.

En GNOME e algúns escritorios que cumpren o estándar de freedesktop.org un aplicativo rexístrase nos menús do escritorio a través dun ficheiro de escritorio que é un ficheiro de texto coa extensión .desktop. Este ficheiro de escritorio contén unha lista de configuración do aplicativo. O escritorio obtén a información do ficheiro e úsao para:

  • poñer o aplicativo no Menú principal. Para atopar unha lista das categorías válidas, vote unha ollada á Especificación do menú de escritorio de FreeDestop.org
  • liste o aplicativo no diálogo Executar aplicativo....
  • cree os iniciadores axeitados no menú ou no escritorio
  • asocie o nome e a descrición do aplicativo.
  • use a icona axeitada.
  • recoǹeza o tipo MIME que admite para abir ficheiros.

Para engadir unha entrada de menú par ao seu aplicativo cree un ficheiro de escritorio. Debería ter un nome de ficheiro único e non existen límites de lonxitude para evitar abreviacións e así se sinta libre para incluír nomes de marcas. Porén non poña espazos ou caracteres internacionais no nome de ficheiro. Por exemplo «empresafoo-graficos-pro.desktop» sería un bo nome de ficheiro pero «fcpp.desktop» é un mal nome, así como «Empresa Foo Gráficos Pro.desktop» O ficheiro debería estar codificado en UTF-8, e parecerse á seguinte plantilla:

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

Esetes ficheiros .desktop conteñen metadatos sobre o seu aplicativo e xogan un rol central na integración do programa con GNOME e outros escritorios que cumpren cos estándares. A plantilla que aquí se presenta é a máis básica posíbel. O ficheiro pódese traducir lingüísticamente de tal forma que o nome do seu aplicativo poida aparecer no idioma nativo do usuario.

Poña este ficheiro no cartafol /usr/share/applications para que sexa accesíbel para todo o mundo, ou en ̣~/.local/share/applications se quere que só sexa accesíbel para un usuario. Isto úsase dependendo de se o seu aplicativo se instalou no sistema ou ben no cartafol dun usuario. GNOME monitoriza estes cartafoles, así que simplemente copiar o ficheiro á localización correcta é dabondo para rexistralo no escritorio. 1

Cada ficheiro desktop debe seguir o mesmo formato. Móstrase un exemplo básico dun ficheiro de escritorio na Exemplo 1-1. O ficheiro está dividido en dúas seccións, cada unha delas comeza coa sección de descrición entre corchetes. Neste exemplo só se mostra unha sección como a esencial para integrar o seu aplicativo no escritorio. Entre cada sección, a parte de cada liña antes do signo igual é a chave, nementres que a segunda é o valor. Móstrase unha explicación de cada liña na Táboa 1-1.

A parte da primeira liña que identifica o ficheiro de escritorio, a orde das liñas non é importante. A Exemplo 1-1liña Type=Application podería estar na segunda ringleira, na quinta ou na última e o resultado sería o mesmo.

Porén, as chaves distinguen entre maiúsculas e minúsculas. Type=Application non é o mesmo que type=application ou TYPE=Application.

Exemplo 1-1Ficheiro de escritorio de exemplo
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Nome de exemplo de aplicativo
Comment=O mesmo aplicativo
Exec=application
Icon=application.png
Terminal=false
Táboa 1-1Explicacións liña a liña
Liña Descrición
[Desktop Entry] A primeira liña de todo ficheiro de escritorio e a sección de cabeceira para identificar o bloque de pares de chaves asociados co escritorio. Necesario para que o escritorio recoñeza o ficheiro correctamente.
Type=Application Dílle ao escritorio que este ficheiro de escritorio pertence a un aplicativo. Outros valores válidos para esta chave son Ligazón e Cartafol.
Encoding=UTF-8 Describe a codificación das entradas neste ficheiro de escritorio.
Name=Nome de exemplo de aplicativo Dalle o nome ao seu aplicativo para o menú principal e calquera iniciador.
Comment=Un aplicativo de exemplo Describe o aplicativo. Usando un consello.
Exec=application A orde que inicia o aplicativo desde consola. Pode ter argumentos.
Icon=application.png O nome da icona asociada con este aplicativo.
Terminal=false Describe se o aplicativo se debería executar nun terminal.

1.1.1. Iniciar o seu aplicativo

Se o seu aplicativo pode levar argumentos desde a liña de ordes, pode detallalo usando os campos mostrados na Táboa 1-2

Táboa 1-2Variábeis de execución
Engadir… Acepta…
%f un só nome de ficheiro.
%F múltiples nomes de ficheiro.
%u un só URL.
%U múltiples URL.
%d un só cartafol. Usado xunto con %f para localizar un ficheiro.
%D múltiples cartafoles. Usado xunto con %F para localizar ficheiros.
%n un só nome de ficheiro sen ruta.
%N múltiples ficheiros sen rutas.
%k un URI ou nome de ficheiro local para a localización do ficheiro de escritorio.
%v o nome do dispositivo de entrada.

1.1.2. Idiomas estranxeiros

Para crear nomes e comentarios localizados débese engadir liñas adicionais para cada local necesaria. Por exemplo, para engadir a versión en galego do comentario engada a seguinte liña

Comment[gl]=Exemplo do nome do programa

Non existen límites no número de traducións para o ficheiro.

Xa que manter unha longa lista de traducións nun ficheiro é moi ineficaz, unha mellor forma de crear estas traducións é usar o paquete intltook. Para obter máis información consulte as páxinas do manual de intltool-extract e intltool-merge.

1.1.3. Referencias

Especificación de entradas de escritorio; Especificacións para crear un ficheiro de escritorio.

1

Teña en conta que a localización ~/.local/share/applications non está monitorizada polas versións de GNOME anteriores a 2.10 ou nas versións anteriores á 2.8 en Fedora Core Linux. Estas versións de GNOME seguien o estándar obsoleto vfolder, e por iso os ficheiros de escritorio débense instalar en ~/.gnome2/vfolders/applications. Esta localización non é compatíbel con GNOME 2.8 en Fedora Core nin en GNOME 2.10, así que par aunha máxima compatibilidade entre escritorios, poña o ficheiro en ámbalas dúas localizacións.

Teña en conta que o Escritorio KDE requrie unha execución de kbuildsycoca para forzar o refresco dos menús.