Esta é uma decisão do upstream vinda do Debian. A justificativa para isso é explicada nesta muito interessante post wiki , da qual o seguinte é um trecho. O resumo executivo é "para garantir que os logins GUI e não GUI funcionem da mesma maneira":
Vamos pegar o xdm como um exemplo. Pierre um dia volta de férias e descobre que o administrador do sistema instalou o xdm no sistema Debian. Ele loga bem, e o xdm lê seu arquivo .xsession e roda o fluxbox. Tudo parece estar bem até que ele receba uma mensagem de erro no local errado! Como ele substitui a variável LANG em seu .bash_profile, e como o xdm nunca lê .bash_profile, sua variável LANG agora está definida como en_US em vez de fr_CA.
Agora, a solução ingênua para esse problema é que, em vez de iniciar o "xterm", ele poderia configurar seu gerenciador de janelas para iniciar o "xterm -ls". Esse sinalizador diz ao xterm que, em vez de lançar um shell normal, ele deve iniciar um shell de login. Sob esta configuração, o xterm gera / bin / bash mas coloca "- / bin / bash" (ou talvez "-bash") no vetor argumento, então o bash age como um shell de login. Isso significa que toda vez que ele abrir um novo xterm, ele lerá / etc / profile e .bash_profile (comportamento bash integrado) e, em seguida, .bashrc (porque .bash_profile diz para fazer isso). Isso pode parecer funcionar bem no início - seus arquivos de pontos não são pesados, então ele nem percebe o atraso - mas há um problema mais sutil. Ele também lança um navegador da Web diretamente de seu menu do fluxbox, e o navegador da web herda a variável LANG do fluxbox, que agora está configurada para o local errado. Então, enquanto seus xterms podem estar bem, e qualquer coisa lançada a partir de seus xterms pode estar bem, seu navegador ainda está lhe dando páginas no local errado.
Então, qual é a melhor solução para esse problema? Não há realmente um universal. Uma abordagem melhor é modificar o arquivo .xsession para algo parecido com isto:
[ -r /etc/profile ] && source /etc/profile [ -r ~/.bash_profile ] && source ~/.bash_profile xmodmap -e 'keysym Super_R = Multi_key' xterm & exec fluxbox
Isso faz com que o shell que interpreta o script .xsession leia em / etc / profile e .bash_profile, se existirem e forem legíveis, antes de executar xmodmap ou xterm ou "executar" o gerenciador de janelas. No entanto, há uma possível desvantagem dessa abordagem: sob o xdm, o shell que lê o .xsession é executado sem um terminal de controle. Se / etc / profile ou .bash_profile usarem qualquer comando que assuma a presença de um terminal (como "fortune" ou "stty"), esses comandos podem falhar. Esta é a principal razão pela qual o xdm não lê esses arquivos por padrão. Se você for usar essa abordagem, deve certificar-se de que todos os comandos em seus "arquivos de ponto" sejam seguros para serem executados quando não houver terminal.