Je voulais ouvrir un fichier (fichier .pdb: format de structure protéique, peu importe) par un double-clic.
Le "ouvrir avec" est dirigé manuellement pour exécuter "pymol" (un programme qui ouvre le format .pdb) avec Ubuntu Tweak.
Cependant, j'ai trouvé que le répertoire de travail est $ HOME.
Comme les autres fichiers du répertoire que j'ai ouvert sont cruciaux, je veux y accéder.
Je suppose que le "pymol" est exécuté sur $ HOME tandis que le chemin absolu du "fichier pdb" (fichier double-cliqué) est passé en argument.
Je suppose que c'est un problème quelque peu général et posez une question:
Comment laisser le système changer le "répertoire de travail" en "répertoire où j'ai cliqué sur le fichier" et exécuter un programme?
la source
~
correctement. Vous n'avez pas besoin de bash -c si vous utilisez le chemin direct / home / marc.cd "%k"
ne fonctionnera pas. Mais vous pouvez utilisercd "$(dirname %k)"
.&&
exécute quelque chose par rapport à~
?Aucune des solutions ci-dessus n'a fonctionné sur mon debian. Est également
%d
obsolète. Voir Spécifications d'entrée de bureau .J'utilise donc le script bash suivant pour exécuter pymol. Vous devez d'abord créer le fichier de script bash suivant et l'enregistrer
/usr/local/bin/run_pymol.sh
. J'ai enregistré le fichier/usr/local
car il semble que lexdg-open
ne comprenne pas ce qu'est le répertoire HOME, etc.Deuxièmement, accordez l'autorisation exécutable à ce fichier. Ouvrez un terminal et tapez les commandes suivantes pour accorder une autorisation et confirmer.
Enfin, modifiez votre
pymol.desktop
fichier comme suit et votre pymol démarrera dans le répertoire où se trouve le premier fichier donné.J'espère que cela vous aide les gars :-)
la source
Path=/my/path
et cela a très bien fonctionné.Path - If entry is of type Application, the working directory to run the program in.
Je ne comprends pas pourquoi la solution là-haut a été si bien votée, elle fait une chose absolument différente. Il change le répertoire de travail en ceux où se trouve le fichier .desktop, alors que la question était sur le point de changer le répertoire de travail en ceux avec le (s) fichier (s) ouvert (s).
Ma solution:
Gardez à l'esprit que la définition des variables env pour les fichiers .desktop est différente, comme
la source
Vous pouvez aller sur
/usr/share/applications
et trouver la bonnefile.desktop
qui est appelée chaque fois que vous ouvrez un type de fichier spécifique. Modifiez-le ensuite etexec
ajoutez dans la lignecd PATH &&
au début de la ligne.la source
D'ACCORD -
n'a pas fonctionné pour moi car PATH n'est pas défini pour pointer vers le chemin de% F. Les seules variables disponibles dans n'importe quel fichier de bureau d'applications sont:
Voilà:% d est le répertoire unique que vous recherchez, car il n'est pas logique de passer à plusieurs répertoires. Allez donc dans / usr / share / applications et éditez le fichier nom-application.desktop (dans votre cas pymol.desktop); vous devez avoir des privilèges de superutilisateur pour ce faire. Recherchez ensuite la ligne commençant par "Exec =". Il lit probablement
(Dans votre cas, Exec = pymol% F). Remplacez cette ligne par
Enregistrez ce fichier de bureau et la prochaine fois que vous cliquerez sur un fichier .pdb, votre répertoire de travail devrait être celui dans lequel se trouve ce fichier .pdb, afin que pymol puisse y voir tous vos fichiers.
Bien sûr, vous pouvez également démarrer pymol à partir de la ligne de commande après avoir d'abord navigué vers le répertoire où se trouvent vos fichiers, mais je suppose que vous vouliez une solution GUI, vous devez donc faire un peu d'édition :-)
la source