在 .desktop 文件中设置变量

在 .desktop 文件中设置变量

有没有办法在 .desktop 文件中设置环境变量?我正在尝试使用自定义 gtk 样式运行应用程序 (eclipse),因此基本上我想通过运行 .desktop 文件来获得以下结果:

GTK2_RC_FILES=gtkrc.custom /path/to/eclipse

我尝试将它放入 bash 脚本并从 .desktop 文件运行它,但它不能很好地与 Unity 启动器集成。

答案1

您可以通过编辑应用程序文件来为其添加环境变量.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

答案2

修改.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

答案3

这似乎是 kmenuedit 的问题。它从不保存 .desktop 文件中的“环境变量”字段。希望这能有所帮助。我打开了 KDE 的一个错误。“FOO=my_var_1”从未被保存,也从未被发送到应用程序。

相关内容