如何在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
设置或取消设置,所以你必须编辑这个文件。