有没有一种方法可以在.desktop文件中设置环境变量?我正在尝试使用自定义gtk样式运行应用程序(日食),因此基本上我想通过运行.desktop文件获得以下结果:
GTK2_RC_FILES=gtkrc.custom /path/to/eclipse
我尝试将其放在bash脚本中并从.desktop文件运行,但是随后它与Unity启动器集成得不好。
有没有一种方法可以在.desktop文件中设置环境变量?我正在尝试使用自定义gtk样式运行应用程序(日食),因此基本上我想通过运行.desktop文件获得以下结果:
GTK2_RC_FILES=gtkrc.custom /path/to/eclipse
我尝试将其放在bash脚本中并从.desktop文件运行,但是随后它与Unity启动器集成得不好。
Answers:
您可以通过编辑应用程序的.desktop
文件来向应用程序添加环境变量。例如,要使用环境变量运行“ digiKam” APPMENU_DISPLAY_BOTH=1
,找到相应的digikam.desktop
文件,然后通过env
命令将变量的设置添加到条目“ Exec”:
Exec=env APPMENU_DISPLAY_BOTH=1 digikam -caption "%c" %i
在您的情况下:
Exec=env GTK2_RC_FILES=gtkrc.custom /path/to/eclipse
修改.desktop
文件的另一种方法是将包装器脚本放入例如~/bin
。
$ cat ~/bin/eclipse
#!/bin/sh
export GTK2_RC_FILES=gtkrc.custom
exec /usr/bin/eclipse "$@"
这样,下次更新应用程序包时,自定义设置将不会被覆盖。
编辑:
您可以通过检查PATH
变量包含的内容来了解有关其工作原理的提示。就我而言:
$ echo $PATH
/home/gunnar/bin:/home/gunnar/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
~/bin
是列表中的第一个文件夹,因此在之前被查看/usr/bin
。
.desktop
文件的可能更新中受益。
~/bin
来解决这个问题。软件包拥有的.desktop
文件永远不会看到该包装器!您还需要使用update-alternatives
.desktop
文件不需要“查看”包装器。它只是执行eclipse
,并且由于选择PATH
了包装而不是/usr/bin/eclipse
。我编辑了答案以弄清楚。
$HOME
?既Exec=env MYVAR="$HOME/foo"
没有Exec=env MYVAR="~/foo"
扩大。相反,它们按字面传递。