Fichiers desktop : positionnement de votre application dans les menus du bureau

Pour lancer des applications à partir de GNOME, les utilisateurs cliquent sur des icônes sur leur bureau ou sélectionnent les applications à exécuter dans un menu. Par conséquent, la première étape pour l'intégration d'un programme existant dans GNOME est de l'enregistrer parmi l'ensemble des applications que les utilisateurs peuvent lancer.

Contrairement à Windows ou MacOS, les menus utilisateurs sous GNOME sont automatiquement construits à partir de la liste des applications enregistrées. Chaque application déclarée indique un ensemble de catégories auquelles elle appartient et le système de configuration du menu les trie et les range. Ce mécanisme suit les standards freedesktop.org d'entrée et de menu desktop.

Bien que très fréquent pour les autres bureaux, la création de vos propres sous-menus spécifiques à votre application n'est pas recommandée. Associez plutôt un seul élément de menu à chaque application fournie. Les éléments supplémentaires tels que les fichiers d'aide, les fichiers LISEZMOI ou les liens vers votre site Web devraient être intégrés dans l'application elle-même.

Sous GNOME et les autres bureaux obéissant aux directives freedesktop.org, une application est enregistrée dans les menus du bureau grâce à un fichier desktop qui est un fichier texte possédant l'extension .desktop. Ce fichier contient une liste des configurations de votre application. Le bureau récupère les informations dans ce fichier et les utilise pour :

  • placer l'application dans le Menu principal. Pour trouver une liste des catégories valides, regardez les Spéficications du menu du bureau de FreeDesktop.org.
  • lister l'application dans la boîte de dialogue Lancer une application,
  • créer les lanceurs adéquats dans le menu ou sur le bureau,
  • associer le nom à la description de l'application,
  • utiliser l'icône appropriée,
  • reconnaître les types MIME pris en charge pour l'ouverture des fichiers.

Pour ajouter une entrée de menu pour votre application, créez un fichier desktop. Son nom doit être unique et il n'y a pas de limitation de longueur, évitez donc les abréviations et n'hésitez pas à inclure des mots marquants. Cependant, ne mettez pas d'espaces ni de caractères internationaux dans le nom du fichier. Par exemple, « societetoto-peintre-pro.desktop » serait un bon choix de nom de fichier mais « stpp.desktop » en serait un mauvais, tout comme « societetoto peintre pro.desktop ». Le fichier doit être codé en UTF-8 et doit ressembler au modèle suivant :

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

Ces fichiers desktop contiennent des métadonnées à propos de l'application et jouent un rôle central pour l'intégration du programme dans GNOME et les autres bureaux respectant les standards. Le modèle présenté ici est le plus basique qui soit. Le fichier peut être traduit dans d'autres langues afin que le nom de votre application puisse apparaître dans la langue maternelle de l'utilisateur.

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

Tous les fichiers desktop actifs doivent respecter le même format. Un exemple minimal de fichier desktop est affiché ici : Exemple I.1. Le fichier est découpé en sections, chacune commençant par un descripteur de section entre crochets. Dans cet exemple, seule une section est affichée car c'est celle qui est indispensable à l'intégration du programme dans le bureau. Dans chaque section, la partie de la ligne avant le signe égal est la clé alors que la seconde moitié est la valeur. Pour chaque ligne, une explication est fournie dans le Tableau I.1.

Excepté pour la première ligne servant à identifier le fichier desktop, l'ordre des lignes est sans importance. Dans Exemple I.1, la ligne Type=Application pourrait être la seconde, la cinquème ou la dernière ligne sans incidence sur le résultat.

Cependant, les clés sont sensibles à la casse. Type=Application n'est pas identique à type=Application ou TYPE=Application.

Exemple I.1 Exemple de fichier desktop
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Nom de l'application exemple
Comment=Une application exemple
Exec=programme
Icon=programme.png
Terminal=false
Tableau I.1 Explication ligne par ligne
Ligne Description
[Desktop Entry] C'est la première ligne de tous les fichiers desktop et l'en-tête de la section identifiant le bloc de paires clé-valeur associé au bureau. Elle est nécessaire pour que le bureau reconnaisse le fichier de manière correcte.
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 Indique le codage du contenu de ce fichier desktop.
Name=Sample Application Name Nom de l'application pour le menu principal et tous les lanceurs.
Comment=A sample application Décrit l'application et est utilisé comme infobulle.
Exec=application La commande qui lance l'application à partir d'un shell. Elle peut posséder des paramètres.
Icon=application.png Le nom de l'icône associée à l'application.
Terminal=false Indique si l'application doit s'exécuter dans un terminal.

I.I.I. Lancement du programme

Si votre application accepte des paramètres en ligne de commande, vous pouvez indiquer ceux-ci en utilisant les champs montrés dans la Tableau I.2.

Tableau I.2 Variables pour l'exécution
Ajouter... Correspond à...
%f Un nom de fichier unique.
%F Plusieurs noms de fichier.
%u Une URL unique.
%U Plusieurs 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 Nom de fichier unique sans chemin.
%N Plusieurs noms de fichier sans chemin.
%k Un URI ou un nom de fichier local indiquant l'emplacement du fichier desktop.
%v Nom du dispositif d'entrée.

I.I.II. Langues étrangères

Pour créer des noms et des commentaires traduits, des lignes supplémentaires pour chaque version traduite doivent être ajoutées. Par exemple, pour ajouter une version suédoise du commentaire, ajouter la ligne suivante :

Comment[sv]=Exempelprogramnamn

Il n'y a aucune limite au nombre de traductions dans le fichier.

Comme il est lourd de maintenir une longue liste de traductions dans un fichier, une meilleure solution pour créer ces traductions est d'utiliser le paquet intltool. Consultez les pages man de intltool-extract et de intltool-merge pour plus d'informations.

I.I.III. Références

Spécification des entrées desktop — Spécifications pour la création d'un fichier desktop.

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.