Answers:
在桌面文件本身中,您可以通过env
以下方式执行程序:
Exec=/usr/bin/env VAR=value /usr/bin/yourprogram
或者,使用包装器脚本(例如/usr/bin/yourprogram.env
):
#!/bin/sh
VAR=value
export VAR
exec /usr/bin/yourprogram.real "$@"
但是,两者都是糟糕的解决方案,因为如果程序是通过包装程序启动的,Unity将无法正确跟踪程序。
工作会好得多~/.profile
- 确保你使用正确的语法和所有:
export VAR=value
要么
VAR=value
export VAR
另请记住,~/.profile
只有在您登录时才会读取,因此您必须在更改后注销。
~/.gnome/apps
还在使用中; ~/.local/share/applications
过去几年一直在调用它。) @迈克,如果它是你自己的应用程序,为什么不能自动确定适当的环境变量?(另外,我可以问你具体设置哪个变量吗?)
.desktop
文件xdg-desktop-menu install <my-desktop-file>
。看起来它将它复制到两个位置,我总是编辑错误的一个......
env VAR=value /my/app
不起作用; 环境变量VAR
未设置为value
当/my/app
启动(我已经通过编辑试图desktop
在文件~/.gnome/apps
)。创建一个包装器脚本对我来说是没有选择的,因为这应该适用于我们分发给最终用户的应用程序,我不知道最终用户希望包装器脚本位于何处(创建启动器不能要求管理员权限) )。