Com base em três perguntas:
- Use perfis diferentes com ZSH (em diferentes aplicativos de terminal) , mas projetado apenas para macOS
- Diferentes configurações do tmux para diferentes sessões? , mas quero usar arquivos .zshrc diferentes para diferentes aplicativos de terminal (Terminal Deepin, terminal integrado do Tilix e VSCode)
- Arquivo .desktop com ambiente .bashrc , mas sem sucesso.
tl:dr – por exemplo:
.zshrc
if [ -f /usr/bin/tilix ]; then
if [ -f ~/tilix.zshrc ]; then
source ~/tilix.zshrc
fi
elif [ -f /usr/bin/deepin-terminal ]; then
if [ -f ~/deepin-terminal.zshrc ]; then
source ~/deepin-terminal.zshrc
fi
elif [ -f /usr/bin/code-insiders ]; then
if [ -f ~/code-insiders.zshrc ]; then
source ~/code-insiders.zshrc
fi
else
source ~/tilix.zshrc
fi
- E os arquivos da área de trabalho do Deepin Terminal e do Tilix:
Exec=bash -c 'source $HOME/deepin-terminal.zshrc && deepin-terminal'
Exec=bash -c 'source $HOME/tilix.zshrc && tilix'
- VSCode
settings.json
:
{
"terminal.integrated.shell.linux": "source $HOME/code-insiders.zshrc && /usr/bin/zsh"
}
Mas nada funcionou.
Talvez eu deva usar devilspie
, mas não tenho certeza se funcionará.
Do lado do terminal
Na configuração de cada terminal ou inicializador de terminal, organize para definir uma variável de ambiente, por exemplo,
TERM_SUBTYPE=tilix
ouTERM_SUBTYPE=deepin
ouTERM_SUBTYPE=vscode
. No seu.zshrc
, verifique o valor desta variável:A
'')
linha é o caso quando nada foi definidoTERM_SUBTYPE
. Você pode deixá-lo de fora se não tiver nada para fazer neste caso.Do lado da casca
O emulador de terminal geralmente é o pai do shell, portanto, verifique o processo pai.
A
*)
linha é um fallback se o processo pai não for um dos casos reconhecidos. Você pode deixá-lo de fora se não tiver nada para fazer neste caso.