Como eu defino uma variável de ambiente em uma sessão Unity?

3

Como solução para um problema com o ibus, estou tentando cancelar a configuração da variável $ IBUS_ENABLE_SYNC_MODE. Eu tentei colocar "unsset IBUS_ENABLE_SYNC_MODE" em vários lugares, incluindo:

  • .profile
  • .bashrc
  • / etc / environment
  • como um aplicativo de inicialização

No entanto, nada disso se reflete em aplicativos lançados no Unity; Por exemplo, quando eu lanço um terminal da Unity, o resultado é:

~$ echo $IBUS_ENABLE_SYNC_MODE
1

Onde devo definir essa variável para que o Unity a utilize corretamente?

Editar: O motivo pelo qual minhas tentativas não estão funcionando foi porque IBUS_ENABLE_SYNC_MODE é definido internamente pelo código Unity na inicialização. Portanto, a menos que modifique e recompile o Unity manualmente, isso não tem solução.

    
por Yubin Kim 23.11.2011 / 19:18

3 respostas

6

A maneira fácil de definir variáveis de ambiente pessoal para o Unity (ou qualquer outra sessão X) é adicioná-las ao arquivo $HOME/.xsessionrc . Essas variáveis são vistas por tudo que é iniciado na sessão, via menus, GUIs, janelas de terminal, etc. Por exemplo, coloque este texto em $HOME/.xsessionrc :

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

Efetue o logout e a devolução, a partir de uma janela do shell:

my-pc> echo $FOOVAR
testing

Testado em 12.04, usando o Unity. Mas esse recurso é implementado pelo script /etc/X11/Xsession usado por muitos tipos de sessão da área de trabalho, portanto, ele deve funcionar com qualquer tipo de sessão. Veja a página Xsession man.

    
por BJohnson 02.05.2012 / 21:13
1

Crie um arquivo em /etc/X11/Xsession.d/ , por exemplo, /etc/X11/Xsession.d/98local (tem que ser executado antes de 99x11-common_start ).

Se isso não funcionar, tente descobrir onde a variável é definida. Algo como

sudo grep -r IBUS_ENABLE_SYNC_MODE /etc/

pode ajudar aqui a encontrar o arquivo.

    
por Florian Diesch 23.11.2011 / 20:03
-1

Eu não sei o que você está tentando fazer com isso, mas geralmente todas as variáveis que precisam ser "globais" são definidas ou não definidas em /etc/bash.bashrc , então você precisa editar este arquivo.

    
por Micro 23.11.2011 / 19:32