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

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

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

但是,在Unity中发布的应用程序中没有反映出这一点; 例如,当我从Unity启动终端时,结果是:

~$ echo $IBUS_ENABLE_SYNC_MODE 1 

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

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

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

 # File sourced by /etc/X11/Xsession, for setting environment variables, etc. export FOOVAR=testing 

注销然后从shell窗口返回:

 my-pc> echo $FOOVAR testing 

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

/etc/X11/Xsession.d/为它创建一个文件,例如/etc/X11/Xsession.d/98local (它必须在99x11-common_start之前执行)。

如果这不起作用,请尝试找出变量设置的位置。 就像是

 sudo grep -r IBUS_ENABLE_SYNC_MODE /etc/ 

可以帮助在这里找到该文件。

我不知道你要做什么,但通常每个需要“全局”的变量都在/etc/bash.bashrc设置或取消设置,所以你必须编辑这个文件。