Answers:
尽管这是几年后的事,但这对我有用:
Exec=bash -c 'cd "%k" && ~/path/to/your/file'
%k提供您刚启动的启动器目录的路径。
~
正确定义。如果使用直接的/ home / marc路径,则不需要bash -c。
cd "%k"
将无法使用。但是你可以使用cd "$(dirname %k)"
。
&&
执行的命令相对于~
?
以上解决方案均不适用于我的debian。也%d
已弃用。请参阅桌面条目规范。
因此,我正在使用以下bash脚本运行pymol。首先,您需要创建以下bash脚本文件并将其保存在中/usr/local/bin/run_pymol.sh
。我将文件保存在其中,/usr/local
因为似乎xdg-open
无法理解HOME目录是什么,等等。
#!/usr/bin/env bash
# change working directory
cd `dirname $1`
# run pymol
/usr/bin/env pymol $@
其次,授予该文件可执行权限。打开终端,然后键入以下命令以授予权限并进行确认。
% chmod +x /usr/local/bin/run_pymol.sh
% run_pymol.sh
最后,pymol.desktop
按照以下步骤修改文件,然后pymol将在第一个给定文件所在的目录中启动。
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Name=PyMOL Molecular Graphics System
GenericName=Molecular Modeller
Comment=Model molecular structures and produce high-quality images of them
Type=Application
Exec=/usr/local/bin/run_pymol.sh %U
TryExec=pymol
Icon=pymol
MimeType=chemical/x-pdb
Categories=Education;Science;Chemistry;
希望它对你们有帮助:-)
Path=/my/path
,效果很好。Path - If entry is of type Application, the working directory to run the program in.
您可以在打开特定文件类型时/usr/share/applications
查找并找到适当file.desktop
的名称。然后对其进行编辑,然后在该exec
行中将其添加cd PATH &&
到该行的开头。
好 -
Exec=cd PATH && <application-name> %F
对我不起作用,因为PATH未定义为指向%F的路径。任何应用程序桌面文件中唯一可用的变量是:
就是这样:%d是您要查找的单个目录,因为更改为多个目录没有意义。因此,转到/ usr / share / applications并编辑文件application-name.desktop(在您的情况下为pymol.desktop);您必须具有超级用户权限才能执行此操作。然后找到以“ Exec =“开头的行。它可能读为
Exec=<application-name> %F
(在您的情况下,Exec = pymol%F)。将此行更改为
Exec=cd %d && <application-name> %F
保存该桌面文件,下次单击.pdb文件时,您的工作目录应该是该.pdb文件所在的目录,以便pymol可以在其中看到所有文件。
当然,您也可以在首先导航到文件所在的目录后从命令行启动pymol,但是我想您需要一个GUI解决方案,因此您必须进行一些编辑:-)