Comment puis-je ajouter une application au gestionnaire de fenêtres GNOME?

50

La documentation intégrée de GNOME ne couvre que les choses que tout le monde peut facilement deviner. J'ai une application pour cela que je peux seulement commencer à partir de la ligne de commande. Pas que ça me dérange d'utiliser un terminal mais ...

Quoi qu'il en soit, comment puis-je ajouter la commande (et de préférence un joli logo) à GNOME WM?

marché
la source
Si vous faites un clic droit, obtenez-vous un élément "Modifier le menu"?
slm
non, pas de menu clic droit du tout.
Mars

Réponses:

88

Dans GNOME et d'autres environnements de bureau compatibles avec freedesktop.org , tels que KDE et Unity , des applications sont ajoutées aux menus ou au shell du bureau via des entrées de bureau , définies dans des fichiers texte avec l' .desktopextension (appelés fichiers de bureau ). Les environnements de bureau créent des menus pour un utilisateur à partir des informations combinées extraites des entrées de bureau disponibles.

Les fichiers du bureau peuvent être créés à deux endroits:

  • /usr/share/applications/ pour les entrées de bureau disponibles pour chaque utilisateur du système
  • ~/.local/share/applications/ pour les entrées de bureau disponibles pour un utilisateur unique

Vous devrez peut-être redémarrer GNOME pour que les nouvelles applications ajoutées fonctionnent.

Selon la convention, les fichiers du bureau ne doivent pas inclure d'espaces ou de caractères internationaux dans leur nom.

Chaque fichier de bureau est divisé en groupes , chacun commençant par l’en-tête du groupe entre crochets ( []). Chaque section contient un certain nombre de clés , la valeur de deux, séparés par un signe égal ( =).

Vous trouverez ci-dessous un exemple de fichier de bureau:

[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=Application Name
Comment=Application description
Icon=/path/to/icon.xpm
Exec=/path/to/application/executable
Terminal=false
Categories=Tags;Describing;Application

Explication

  • [Desktop Entry]l'en- Desktop Entrytête de groupe identifie le fichier en tant qu'entrée de bureau
  • Type le type de l'entrée, les valeurs valides sont Application, LinketDirectory
  • Encoding l' encodage des caractères du fichier de bureau
  • Name le nom de l'application visible dans les menus ou les lanceurs
  • Comment une description de l'application utilisée dans les info-bulles
  • Icon l'icône affichée pour l'application dans les menus ou les lanceurs
  • Exec la commande utilisée pour démarrer l'application à partir d'un shell.
  • Terminal si l'application doit être exécutée dans un terminal, les valeurs valides sont trueoufalse
  • Categories point-virgule ( ;) liste séparée des catégories de menu dans lesquelles l'entrée doit être affichée

Les arguments de ligne de commande dans la Execclé peuvent être signifiés avec les variables suivantes:

  • %f un seul nom de fichier.
  • %F plusieurs noms de fichiers.
  • %u une seule URL.
  • %U plusieurs URL.
  • %d un seul répertoire. Utilisé en conjonction avec %fpour localiser un fichier.
  • %D plusieurs annuaires. Utilisé conjointement avec %Fpour localiser les fichiers.
  • %n un seul nom de fichier sans chemin.
  • %N plusieurs noms de fichiers sans chemins.
  • %k un URI ou un nom de fichier local de l'emplacement du fichier de bureau.
  • %v le nom de l'entrée Device.

Notez que ~les variables d'environnement telles que $HOMEne sont pas développées dans les fichiers du bureau. Par conséquent, tous les exécutables référencés doivent figurer dans $PATHou référencés via leur chemin absolu.

Une spécification complète du poste de travail est disponible sur le centre de développement GNOME .

Lancer des scripts

Si l'application à lancer nécessite certaines étapes avant d'être appelée, vous pouvez créer un script shell qui lance l'application et faire pointer l'entrée du bureau vers le script shell. Supposons qu'une application nécessite d'être exécutée à partir d'un certain répertoire de travail en cours. Créez un script de lancement dans un emplacement approprié ( ~/bin/par exemple). Le script pourrait ressembler à ceci:

#!/bin/bash
pushd "/path/to/application/directory"
./application "$@"
popd

Définissez le bit exécutable pour le script:

$ chmod +x ~/bin/launch-application

Ensuite, pointez la Execclé dans l'entrée du bureau sur le script de lancement:

Exec=/home/user/bin/launch-application
Thomas Nyman
la source
Je l’ai fait, je peux voir l’icône sous applications, mais lorsque je clique sur l’application ne démarre pas, le curseur se transforme en symbole de chargement pendant quelques secondes seulement. Aucun message d'erreur.
Mars
@mart Pouvez-vous nous dire pour quelle application vous essayez d'ajouter un lanceur?
Thomas Nyman
1
FTL - un jeu indépendant que j'ai acheté quelque part sur le Web. À partir de la console fonctionne.
Mars
1
@mart <path>/.FTLpointerait vers un fichier caché appelé .FTL, qui n'est pas le même que ./FTL, qui pointe vers un fichier appelé FTLdans le répertoire en cours. Vous pouvez essayer de lancer FTLvia /full/path/path/to/FTLun terminal pour voir si vous obtenez une sortie d'erreur significative. Par exemple, si l'exécutable recherche des bibliothèques dans le répertoire de travail en cours, vous devrez peut-être créer un script de lancement qui reproduira l'action pushd <path>; ./FTL; popddu Execspécificateur du fichier de bureau vers le script de lancement.
Thomas Nyman
1
correction: cela fonctionne de l'intérieur du répertoire
mart
12

Très bonne réponse de Thomas Nyman.

Gnome est livré avec un outil graphique gnome-desktop-item-editfacilitant la création de fichiers * .desktop. Nous devons l’utiliser en ligne de commande ou créer un fichier de bureau pour cela.

Instructions pour faire une application Gnome à partir de gnome-desktop-item-edit

  1. Ouvrez les fenêtres du terminal et tapez la commande suivante:

    gnome-desktop-item-edit --create-new / home / [votre nom d'utilisateur] /. local / share / applications

  2. Dans la fenêtre ouverte remplissez les champs suivants: entrez la description de l'image ici

    Name: Gnome Applicaiton

    Command: gnome-desktop-item-edit --create-new /home/[your user name]/.local/share/applications

    Cliquez sur l'icône pour sélectionner une autre icône.

  3. Cliquez sur OK pour fermer les fenêtres

  4. Fermer la fenêtre du terminal

Test nouvellement généré Gnome Application

  1. Ouvrir le tableau de bord
  2. Type d'application
  3. Vous devriez voir le Gnome Applicationentré avant
  4. Sélectionnez le
  5. Créer une autre application
Dudi Boy
la source
Cela fonctionne vraiment bien, merci. Est-il possible de modifier le menu dans lequel la nouvelle application apparaît? Le mien est apparu dans Applications-> Autre
SteveP
-1

Les réponses précédentes de Thomas Nyman et Dudi Boy sont très bonnes et détaillées. Je poste ceci parce que je n'ai pas trouvé de réponse à mon doute dans aucun autre message et j'ai dû chercher dans les problèmes git.

Après avoir suivi les étapes décrites par Thomas Nyman, j'ai pu créer l'icône de mon programme dans le menu Applications. Le problème ici est que j'utilise Dash to Dock comme barre latérale et que je ne pouvais pas épingler l'icône en tant que favori, contrairement aux autres icônes. Après avoir cherché, j'ai trouvé que vous deviez ajouter la ligne StartupWMClass=ApplicationNamedans le .desktopfichier. Ensuite, l'option d'ajout aux favoris apparaît en cliquant avec le bouton droit de la souris sur l'icône dans Dash to Dock.

JonLord
la source