Você pode usar ps -o comm= -p $PPID
(obter o nome do comando para o processo pai) para ver qual programa invocou zsh.
Você também pode verificar a variável de ambiente TERM
, mas muitos emuladores de terminal apenas configuram para xterm
porque são compatíveis com o xterm. O que os terminais integrados do IDE definem TERM
depende de quão funcional seu terminal é. Por exemplo, o Emacs usa TERM=dumb
em M-x shell
(linha de comando simples, onde o Emacs mantém o controle dos recursos da edição), mas TERM=eterm-color
em M-x term
(um emulador de terminal completo).
Alguns aplicativos definem variáveis de ambiente, por exemplo como observado por muru Iterm define ITERM_PROFILE
. Tenha em atenção que, se lançar um emulador de terminal diferente a partir de uma shell, a shell no segundo emulador herda das variáveis da primeira. Portanto, você pode querer definir $ITERM_PROFILE
apenas após verificar se o processo pai é Iterm.
Uma abordagem alternativa ou complementar é permitir que o programa de chamada faça o trabalho. Zsh lê seus arquivos de configuração a partir do diretório $ZDOTDIR
, retornando ao seu diretório pessoal se ZDOTDIR
não estiver definido. Você pode carregar, e. $HOME/.zshrc
de um .zshrc
em um diretório diferente, se você quiser aplicar as configurações padrão com algumas modificações.