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.

Placez ce fichier dans le répertoire /usr/share/applications afin que celui-ci soit accessible par tout le monde ou dans ~/.local/share/applications si vous souhaitez qu'il ne soit accessible qu'à un seul utilisateur. Celui qui sera utilisé dépend du fait que votre application soit installée pour tout le système ou bien dans le dossier personnel d'un utilisateur. GNOME surveille les modifications de ces répertoires, donc une simple copie du fichier au bon emplacement est suffisant pour le faire enregistrer par le bureau. 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 Indique au bureau que ce fichier desktop est du type application. Les autres valeurs possibles pour cette clé sont Link et Directory.
Encoding=UTF-8 Indique le codage du contenu de ce fichier desktop.
Name=Nom de l'application exemple Nom de l'application pour le menu principal et tous les lanceurs.
Comment=Une application exemple Décrit l'application et est utilisé comme infobulle.
Exec=programme La commande qui lance l'application à partir d'un shell. Elle peut posséder des paramètres.
Icon=programme.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 Un répertoire unique. Utilisé conjointement à %f pour localiser un fichier.
%D Plusieurs répertoires. Utilisé conjointement à %F pour localiser des fichiers.
%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

Notez que l'emplacement ~/.local/share/applications n'est pas surveillé par les versions de GNOME antérieures à la version 2.10 ou sous Fedora Core Linux antérieur à la version 2.8. Ces versions de GNOME suivent le standard vfolder qui est maintenant déconseillé et par conséquent les fichiers de bureau doivent être installés dans ~/.gnome2/vfolders/applications. Cet emplacement n'est pas pris en charge par GNOME 2.8 sous Fedora Core ni dans les versions amonts de GNOME 2.10, donc pour un maximum de compatibilité avec les bureaux existants, placez le fichier aux deux emplacements.

Notez qu'avec le bureau KDE, il est nécessaire de lancer la commande kbuildsycoca pour forcer la mise à jour des menus.