基于三个问题:
- 对 ZSH 使用不同的配置文件(在不同的终端应用程序中),但仅针对 macOS 设计
- 不同会话的不同 tmux 配置?,但我想为不同的终端应用程序(Deepin Terminal、Tilix 和 VSCode 的集成终端)使用不同的 .zshrc 文件
- .desktop 文件与 .bashrc 环境,但不成功。
tl:dr – 例如:
.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
- 以及 Deepin Terminal 和 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"
}
但没有任何效果。
也许我应该使用devilspie
,但我不确定它是否会起作用。
从航站楼一侧
在每个终端或终端启动器的配置中,安排设置环境变量,例如
TERM_SUBTYPE=tilix
orTERM_SUBTYPE=deepin
或TERM_SUBTYPE=vscode
。在您的.zshrc
中,检查此变量的值:该
'')
行是什么都没有设置的情况TERM_SUBTYPE
。如果您在这种情况下无事可做,可以将其忽略。从外壳一侧
终端模拟器通常是shell的父进程,所以检查父进程。
*)
如果父进程不是已识别的情况之一,则该行是一个后备。如果您在这种情况下无事可做,可以将其忽略。