![使用环境变量启动桌面应用程序的方法](https://linux22.com/image/200947/%E4%BD%BF%E7%94%A8%E7%8E%AF%E5%A2%83%E5%8F%98%E9%87%8F%E5%90%AF%E5%8A%A8%E6%A1%8C%E9%9D%A2%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E7%9A%84%E6%96%B9%E6%B3%95.png)
我实际上有一些 GUI 应用程序需要的一个环境变量:QT_QPA_PLATFORMTHEME=qt5ct
。现在我将其导出为~/.bashrc
.
当我qt5ct
从终端运行时,应用程序会看到环境变量。但不是当它从桌面文件运行时。
因此我尝试了多种方法,更改了Exec=
桌面文件的行(qt5ct
如果应用程序看到环境变量,则启动显示):
sh -e 'qt5ct'
: 没有检测到sh -c 'qt5ct'
: 没有检测到sh -a -e 'qt5ct'
: 没有检测到bash -c 'qt5ct'
: 没有检测到
最后,设法找到了一个棘手的方法(在我的意见)有效:
/usr/bin/env QT_QPA_PLATFORMTHEME=qt5ct qt5ct
:检测
所以我的问题是:有什么方法可以QT_QPA_PLATFORMTHEME
像我一样导出变量环境~/.bashrc
吗?因为我需要时间来手动编辑桌面条目(也许这些条目会被应用程序的更新自动覆盖?)。
~/.bashrc
我尝试在,中导出~/.profile
,没有任何更改,但我没有任何~/.xsession
.
PS:如果有英文错误,或者标题不如我的问题那么准确,我很抱歉。
答案1
系统范围的变量可以在/etc/environment
.请注意,该文件不接受变量或 shell 代码,而仅适用于静态变量,写为:
QT_QPA_PLATFORMTHEME=qt5ct
通常~.profile
应该是 GUI 登录的来源,但维护者之间似乎对此存在一定的争论。看这个线程- 背后的总体想法不是来源~/.profile
是最初该文件用于 shell 登录,而 GUI 登录不被视为 shell 登录。因此,未获取的文件可能与您当前的桌面管理器有关。