Isso porque uma sessão X inicial nunca lê seus ~/.bashrc
e ~/.profile
. Normalmente, o gerenciador de desktop é iniciado como root ou seu próprio usuário a partir de um script de inicialização. O processo resultante geralmente tem o ambiente do processo init quando atinge o script de inicialização do gerenciador de desktop. (Eu não vou falar sobre implementações de init menos estabelecidas neste momento.)
Após o login, ele gera um processo filho, que herda apenas esse ambiente. O processo filho descarta privilégios para o seu uid e executa /etc/X11/Xsession
, que geralmente executa todos os scripts em /etc/X11/Xsession.d
. Esses scripts geralmente definem variáveis de ambiente ou modificam especificamente a invocação do ambiente de área de trabalho.
Nesse diretório, você pode encontrar um arquivo como 40x11-common_xsessionrc
nos sistemas Debian, que origina seu ~/.xsessionrc
. O último arquivo em /etc/X11/Xsession.d
iniciará seu ambiente de área de trabalho. Todos os seus processos de GUI serão criados a partir desse processo, portanto, herdam o ambiente configurado através de /etc/X11/Xsession.d
e, consequentemente, seu ~/.xsessionrc
.
~/.xsessionrc
é um arquivo de script, que pode originar ~/.bashrc
, mas esse é um estilo muito ruim, porque o seu DE o encanta, o processo do terminal herda esse ambiente e depois bate as fontes ~/.bashrc
novamente, o que pode ter um lado indesejado efeitos.
No entanto, é totalmente aceitável ter um ~/.myenvironmentvariables
, que contém definições de variáveis estritamente (ambiente) e é originado por ~/.bashrc
e ~/.xsessionrc
. Se você fizer isso, todos os seus processos herdarão as variáveis especificadas em ~/.myenvironmentvariables
, especialmente os scripts de shell que você clica duas vezes no Nautilus.