Créer un lanceur d'application (fichier .desktop)

Sur les systèmes GNU-Linux, les lanceurs sont des fichiers donnant accès, à la manière d'un "raccourci", à un logiciel, à un fichier ou à un dossier.

Les environnements graphiques, répondant aux directives freedesktop.org, utilisent notamment des lanceurs (fichier texte possédant l'extension .desktop) pour construire leurs menus et pour permettre le lancement d'applications en cliquant sur leurs icônes.

Les lanceurs sont plus riches que de simples raccourcis : nom, icône, mots-clés (traduits), description de l'application (traduite), actions spécifiques, … les lanceurs permettent aux menus de proposer des icônes claires, des catégories, une recherche et une description accessible des applications.

Pour construire les menus, les environnements prennent en comptent tous les fichiers .desktop qu'on trouve :

  • soit dans /usr/share/applications/ : le lanceur sera accessible depuis les menus à tous les utilisateurs du système
  • soit dans ~/.local/share/applications/ : le lanceur sera accessible depuis les menus à l'utilisateur courant
  • soit dans ~/Desktop : le lanceur sera accessible sur le bureau de l'utilisateur courant

Créer un lanceur

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, « mon-application.desktop » serait un bon choix de nom de fichier mais « ma.desktop » en serait un mauvais, tout comme « mon application.desktop ».

Le fichier doit être codé en UTF-8 et doit ressembler au modèle suivant :

[Desktop Entry]
Name=My Application
Name[fr]=Mon Application
Exec=myapplication
Type=Application
Icon=myapplication
Comment=Do the thing that the application does
Categories=GTK;GNOME;Utility;

La ligne [Desktop Entry] indique qu'il s'agit d'un lanceur d'application. Elle est suivie de clés, qui décrivent le lanceur de l'application :

  • La clé Name est le nom de l'application, lisible par l'utilisateur, qui doit être affiché dans l'interface utilisateur. Ce nom peut être traduit en indiquant le code de la langue (par exemple :[fr]).
  • La commande qui lance l'application à partir d'un shell est listé dans la clé Exec, soit par le chemin complet, soit le binaire est recherché dans le PATH. Cette commande peut posséder des paramètres.
  • La dernière clé requise est le Type, qui pour les applications est toujours Application. D'autres types sont énumérés dans la spécification de saisie du bureau.

Les autres champs du fichier de bureau sont facultatifs, mais recommandés :

  • Les applications doivent installer une icône, et indiquer le nom de l'icône (sans l'extension) dans la clé Icon. Afin que cela fonctionne, il faut placer ce fichier icône dans le bon (sous-)répertoire du thème choisi dans /usr/share/icons/. Les icônes du programme doivent être au moins disponibles avec une résolution de 48x48 pixels.
  • La clé Comment est une brève description de l'application.
  • Pour aider les utilisateurs à naviguer dans les applications, la clé Categories doit être remplie avec une liste de catégories, séparées par un point-virgule, de la spécification du menu du bureau [^1].

Il existe plusieurs autres clés qui peuvent être ajoutées aux fichiers du bureau, qui sont énumérées et décrites dans la spécification des entrées du bureau [^2].

Lancer un lanceur

Si le fichier .desktop a l'attribut exécutable, on peut cliquer sur lui pour lancer l'application.

Ajouter des actions

On peut aussi ajouter des actions, des commandes supplémentaires, à laquelle on peut accéder en faisant un clic-droit sur l'icône du lanceur dans certains environnements. On parle aussi parfois de "quicklists" pour désigner ce concept.

Les identifiants des actions devront être listés dans la section principale [Desktop Entry] du fichier :

Actions=id_action1;id_action2;

Puis,dans le lanceur, on ajoute autant de sections actions suivant ce modèle :

[Desktop Action id_action1]
Name=Action Name number 1
Name[fr]=Nom de l'action numéro 1
Exec=commande quelconque

Pour en savoir plus :

links

social