urxvt -e zsh -c ranger
é praticamente equivalente a urxvt -e ranger
. Você está dizendo para o urxvt rodar zsh e zsh para executar o ranger, e é isso. urxvt -e zsh -c ranger
não carrega .zshrc
: zsh carrega apenas ao iniciar um shell interativo , ou seja, um shell que lê comandos do usuário, não ao iniciar um shell que executa um script (se este script está em um arquivo ou passado na linha de comando com -c
).
Você pode carregar .zshrc
explicitamente ( urxvt -e zsh -c '. ~/.zshrc; ranger'
ou usar um script de wrapper como fez). Isso não é uma boa idéia, porque .zshrc
é para configurações interativas de associações de teclas zsh, aliases, etc. Configurações de variáveis de ambiente (por exemplo, PATH) se aplicam a todos os programas, portanto devem ser feitas no momento do login, href="https://superuser.com/questions/183870/difference-between-bashrc-and-bash-profile/183980#183980"> geralmente em ~/.profile
. Mova sua configuração de PATH de .zshrc
para .profile
de onde pertence.