Não é possível exportar variáveis de ambiente no início da sessão X

4

Minha configuração é:

  • teste Debian (extensão), atualizado
  • LightDM com autologin ativado
  • Gerenciador de janelas incrível
  • bash, em ROXTerm ou XTerm

Eu não consigo definir as próprias variáveis de ambiente e obtê-las como origem na inicialização da sessão X. Aqui está o que eu tentei:

  • usando ~/.bash_profile no meu sistema operacional anterior, mas aprendi com esta resposta que não é fonte na inicialização do X no Debian e seus derivados
  • Eu fiz mv .bash_profile .profile como sugerido, mas também não funcionou porque, como aprendi mais tarde em aqui , ~/.profile não é originado quando o gerenciador de exibição inicia a sessão X
  • a resposta da pergunta acima sugere o uso de ~/.xsessionrc . Isso também não funcionou porque, como aprendi com aqui , ele é originado apenas por /etc/X11/Xsession que o LightDM não executa
  • Wiki do Arch Linux afirma que o LightDM origina ~/.xprofile arquivos, mas isso também não funcionou.

Tentando receber conselhos do último site, eu fiz o meu ~/.xinitrc assim:

export QT_STYLE_OVERRIDE=GTK+
[ -f ~/.xprofile ] && source ~/.xprofile
~/.screenlayout/default.sh
awesome

E meu ~/.xprofile assim:

[[ -f ~/.bashrc ]] && . ~/.bashrc
source /etc/bash_completion.d/virtualenvwrapper

export GDK_NATIVE_WINDOWS=1
export WORKON_HOME=$HOME/env/

Infelizmente, depois de fazer login e iniciar a sessão X, vejo que nenhuma dessas variáveis está definida:

red@localhost:~$ echo $QT_STYLE_OVERRIDE

red@localhost:~$ echo $GDK_NATIVE_WINDOWS

red@localhost:~$ echo $WORKON_HOME

Como faço para configurá-los corretamente?

    
por Red 16.04.2016 / 17:00

1 resposta

3

~/.xinitrc é lido apenas quando você inicia uma sessão da GUI com startx (ou chamando xinit ) depois de efetuar login no modo de texto. Então isso não vai te ajudar.

Se ~/.bash_profile , ~/.profile , ~/.xprofile e ~/.xsessionrc são lidos quando o login com um gerenciador de exibição depende de como o gerenciador de exibição está configurado e qual tipo de sessão você seleciona ao efetuar login. posso dizer, pelo menos no Debian jessie (eu não olhei se isso mudou desde então):

  • /usr/share/lightdm/lightdm.conf.d/01_debian.conf diz ao Lightdm para usar /etc/X11/Xsession como o script de inicialização da sessão.
  • /etc/X11/Xsession (via /etc/X11/Xsession.d/40x11-common_xsessionrc ) carrega $USERXSESSIONRC , que é ~/.xsessionrc .

Então ~/.xsessionrc deve funcionar, pelo menos no Debian jessie.

No Debian, ~/.pam_environment deve trabalhar para definir variáveis de ambiente para qualquer método de login.

Como alternativa, você pode definir variáveis de ambiente e executar programas do Awesome pelo ~/.config/awesome/rc.lua (chamada posix.setenv("QT_STYLE_OVERRIDE", "GTK+") para definir uma variável de ambiente).

    
por 16.04.2016 / 21:34