Eu tenho jogado com es nos últimos dois dias, e ele (como rc) tem a peculiaridade / recurso de executar apenas o script de inicialização ( .esrc
) no login. A maneira usual de executar código em cada sessão interativa é colocar esse código na %prompt
função
Obviamente, não há %prompt
função se es -l
nunca foi executada.
Então, a pergunta: como você define o ambiente de login quando entra através do gdm ou similar, que apenas origina .profile (ou .xprofile, .xsession etc.)? O melhor que eu criei é:
if [ -f "$HOME/.esrc" ]; then
eval "`es -l <<-x
sh <<<'export -p'
x`"
fi
O que parece ... horrível. Alguma abordagem melhor?
shell
environment-variables
profile
gdm
james.haggerty
fonte
fonte
es
não é o seu shell de login. Que tal definiçãoalias es='es -l'
em.bashrc
?es
é o meu shell de login. Desculpe se eu não deixei isso claro. Mas os shells de login não são executados nas sessões X antes do lançamento dos terminais, pelo menos até onde eu saiba.bash
, nãoes
. Mas quando abro uma nova janela de terminal, ela é executadabash
como um shell de login.Respostas:
Como ninguém tem uma resposta real, aqui está o meu truque horrível. Alguns shells (* rxvt por exemplo) possuem configurações que permitem forçar um shell de login. Então, no seu
.Xdefaults
, você pode adicionar algo parecido comO que significa que todos os
urxvt256c-ml
terminais que você iniciar terão um shell de login por padrão.Isso ajuda em tudo?
fonte