Je veux définir la variable «Path» dans un fichier .desktop par rapport à l'emplacement où se trouve le fichier de bureau et je n'arrive pas à le faire.
Lorsque je ne le déclare pas ou ne le mets pas en blanc, il revient par défaut à mon dossier personnel, peu importe d'où je l'exécute; et il n'accepte pas les valeurs relatives à mon emplacement actuel dans le système de fichiers.
Réponses:
Vous ne pouvez pas définir le CWD dans un fichier .desktop. Si vous voulez qu'une application ait un CWD spécifique, vous devrez écrire un script wrapper simple pour l'application, qui ressemble à ceci:
Vous pouvez
your_program
y remplacer$@
et exécuter le script avec votre_programme comme argument, commerun-in-dir.sh your_program
. De cette façon, vous pouvez utiliser le même script pour envelopper n'importe quel programme que vous souhaitez démarrer dans ce répertoire.la source
Vous pouvez contourner cela en utilisant un mini-script bash en ligne sur votre Exec. Cela ajoutera le chemin du fichier .desktop à PATH avant d'exécuter votre commande.
% k sera remplacé par le chemin du fichier de bureau lui-même. La
dirname
commande coupe la partie du nom de fichier, ne laissant que le répertoire. Une fois que PATH est défini comme ceci, ilyour_command
peut être invoqué sans chemin complet.la source
J'ai utilisé ceci:
% K est le nom complet du fichier .desktop, y compris son chemin. Il est ensuite utilisé par dirname pour obtenir un emplacement et changer de répertoire à cet emplacement. Enfin, maintenant qu'il est au bon endroit, il trouve le script et l'exécute.
la source
Pour les noms de répertoire avec des espaces dans le nom, cela a finalement fonctionné pour moi:
Crédit à /unix//a/144428/61349
la source
Cela a fonctionné pour moi Ubuntu 14.04:
La dernière spécification indique que % k pointe vers l'emplacement du fichier de bureau:
la source