201 votes

Exécution d'un fichier desktop dans le terminal

D'après ce que j'ai pu comprendre, les fichiers .desktop sont des raccourcis qui permettent de personnaliser les paramètres de l'application. Par exemple, j'en ai beaucoup dans mon dossier /usr/share/applications/.

Si j'ouvre ce dossier dans nautilus, je peux exécuter ces applications en double-cliquant simplement sur leur fichier associé, par exemple, double-cliquer sur firefox.desktop lance Firefox. Cependant, je ne trouve pas de moyen de faire la même chose via le terminal.

Si je fais gnome-open foo.desktop, cela ouvre simplement foo.desktop comme un fichier texte. Si je le rends exécutable puis le lance dans bash, cela échoue simplement (ce qui est attendu, ce n'est clairement pas un script bash).
EDIT : Faire exec /chemincomplet/foo.desktop me donne un message Permission denied, même si je change la propriété à moi-même. Si je le rends exécutable et que je fais la même commande, l'onglet terminal que j'utilise se ferme simplement (je suppose que cela plante). Enfin, si je fais sudo exec /chemincomplet/foo.desktop, j'obtiens une erreur signalant sudo : exec : command not found.

Voilà ma question, comment puis-je exécuter un fichier foo.desktop à partir du terminal?

1voto

shyam Points 4133

Lorsque j'ai essayé de tester ces fichiers, j'ai trouvé que le moyen le plus simple de vérifier que le gestionnaire de bureau ou le gestionnaire de session ferait ce à quoi je m'attendais était d'ouvrir le répertoire environnant dans un navigateur de fichiers UI, puis de double-cliquer pour les ouvrir.

Si vous êtes en ligne de commande : gvfs-open . ou gnome-open . l'ouvrira dans le navigateur de fichiers configuré.

La chose à faire avec sed ne reflétera pas le comportement du gestionnaire de bureau, y compris des choses compliquées comme les échappements et les guillemets où vous ne voudriez vraiment pas de comportement alternatif. Ce n'est pas en ligne de commande, mais cela a validé les choses. J'ai également trouvé utile de définir Terminal=true pour le débogage.

1voto

Gabriel Points 1565

Assurez-vous que le script vers lequel votre fichier de bureau pointe est également exécutable.

Si cela ne fonctionne toujours pas. Rendez le fichier de bureau exécutable dans le terminal en changeant Terminal=true, et placez-le à l'intérieur d'un script bash. Exécutez le script pour attraper la sortie d'erreur. Rechangez une fois que les erreurs sont corrigées.

0voto

ongle Points 4567

Dans mon expérience avec les réponses ci-dessus, gtk-launch ne fournit aucune information de diagnostic utile, et est légèrement trompeur, signalant "non trouvé" comme cause de l'erreur plutôt que la vraie cause racine. La meilleure solution que j'ai pu trouver était d'installer rofi avec sudo apt install rofi et ensuite le lancer depuis le terminal avec :

rofi -show drun

Ensuite, j'ai sélectionné mon application en utilisant son fuzzy-finder, et après avoir appuyé sur entrée, cela m'a réellement donné la vraie raison pour laquelle le fichier *.desktop ne se lançait pas (dans mon cas, j'avais des guillemets autour de la ligne Exec dans mon fichier *.desktop).

Est-ce que quelqu'un sait où se trouve le code source de gtk-launch? Il semble vraiment que nous devrions créer une PR pour fournir de meilleurs messages d'erreur, plus précis, car cela semble être un problème répandu lors de la recherche sur internet.

Édit1 : J'ai trouvé la source de gtk-launch ici

-1voto

COD session Points 1

"Je suis en train d'utiliser Ubuntu 20.10 (Groovy Gorilla)"

Ouvrez simplement le terminal et naviguez jusqu'au dossier où se trouve le fichier .desktop, puis tapez

chmod +x (nom du fichier desktop)
./(nom du fichier desktop)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X