为统一应用程序启动器设置环境变量

Mik*_* L. 8 linux launcher ubuntu

我创建了一个.desktop文件来启动我们的应用程序。我们的应用程序要求正确配置某个环境变量。我在哪里可以在每个用户的基础上配置这个环境变量(我知道的通常的候选人,喜欢~/.bashrc~/.profile不工作)。

也许有一个解决方法,所以我可以在启动应用程序之前Exec=.desktop文件行中配置它?

use*_*686 16

在桌面文件本身中,您可以通过env以下方式执行程序:

Exec=/usr/bin/env VAR=value /usr/bin/yourprogram
Run Code Online (Sandbox Code Playgroud)

或者,使用包装脚本(例如/usr/bin/yourprogram.env):

#!/bin/sh
VAR=value
export VAR
exec /usr/bin/yourprogram.real "$@"
Run Code Online (Sandbox Code Playgroud)

然而,两者都是糟糕的解决方案,因为如果程序通过包装器启动,Unity 将无法正确跟踪程序。

开始~/.profile工作会更好- 确保您使用正确的语法以及所有这些:

export VAR=value
Run Code Online (Sandbox Code Playgroud)

或者

VAR=value
export VAR
Run Code Online (Sandbox Code Playgroud)

还要记住,~/.profile只有在您登录时才会读取,因此您必须在更改后注销。