如何在 Unity 会话中设置环境变量?

Yub*_*Kim 3 unity environment-variables

作为 ibus 问题的解决方法,我试图取消设置变量 $IBUS_ENABLE_SYNC_MODE。我试过在不同的地方放置“unset IBUS_ENABLE_SYNC_MODE”,包括:

  • 。轮廓
  • .bashrc
  • /etc/环境
  • 作为启动应用程序

然而,这一切都没有反映在 Unity 中启动的应用程序中;例如,当我从 Unity 启动终端时,结果是:

~$ echo $IBUS_ENABLE_SYNC_MODE
1
Run Code Online (Sandbox Code Playgroud)

我应该在哪里设置这个变量,以便 Unity 正确获取它?

编辑:我的尝试不起作用的原因是因为 IBUS_ENABLE_SYNC_MODE 是在启动时由 Unity 代码在内部设置的。因此,除了手动修改和重新编译 Unity,这还没有解决方案。

小智 7

为 Unity(或任何其他 X 会话)设置个人环境变量的简单方法是将它们添加到文件$HOME/.xsessionrc. 通过菜单、GUI、终端窗口等,会话中启动的所有内容都可以看到这些变量。例如,将此文本放入$HOME/.xsessionrc

# File sourced by /etc/X11/Xsession, for setting environment variables, etc.
export FOOVAR=testing
Run Code Online (Sandbox Code Playgroud)

注销并重新登录,然后从 shell 窗口:

my-pc> echo $FOOVAR
testing
Run Code Online (Sandbox Code Playgroud)

在 12.04 下测试,使用 Unity。但是此功能是/etc/X11/Xsession由许多类型的桌面会话使用的脚本实现的,因此它应该适用于任何会话类型。请参阅Xsession手册页。