Embora /etc/kde4/kdm/Xsession
seja usado para carregar algumas das configurações de shell do usuário, ele não carrega ~/.zshenv
explicitamente (embora um comentário mencione que está carregado). ~/.zshenv
(assim como /etc/zshenv
) são carregados automaticamente toda vez que um zsh
é iniciado, isso não pode ser substituído. E como /etc/kde4/kdm/Xsession
é executado com seu shell de login - no seu caso zsh
- ~/.zshenv
também é carregado, não importa o que realmente seja feito em /etc/kde4/kdm/Xsession
.
E /etc/kde4/kdm/Xsession
tenta carregar a configuração do usuário para que ele esteja disponível para programas que são iniciados por outros meios além do shell da linha de comando (menu KDE, início automático, ícone da área de trabalho, etc.).
Como para evitar a duplicação de $PATH
, isso deve funcionar: Em vez de usar algo como PATH=$PATH:/usr/local/bin:/my/path/here:/another/path
, use
new_paths=(/usr/local/bin /my/path/here /another/path)
path=($path ${new_path:|path})
new_path
é uma matriz dos caminhos que você deseja adicionar. path
é a versão da matriz de PATH
, tem o mesmo conteúdo, mas como matriz real, em vez da lista separada por dois-pontos. ${new_path:|path}
é substituído por uma matriz dos elementos em new_path
que ainda não estão em path
.