세 가지 질문을 바탕으로:
- ZSH와 함께 다양한 구성 파일 사용(다른 터미널 애플리케이션에서), 그러나 macOS용으로만 설계되었습니다.
- 세션마다 다른 tmux 구성이 있습니까?, 하지만 다른 터미널 응용 프로그램(Deepin 터미널, Tilix 및 VSCode용 통합 터미널)에 대해 다른 .zshrc 파일을 사용하고 싶습니다.
- .bashrc 환경의 .desktop 파일, 그러나 성공하지 못했습니다.
TL: 박사학위- 예를 들어:
.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'
- VS코드
settings.json
:
{
"terminal.integrated.shell.linux": "source $HOME/code-insiders.zshrc && /usr/bin/zsh"
}
그러나 아무것도 작동하지 않습니다.
어쩌면 사용해야 할 수도 있지만 devilspie
작동하는지 확실하지 않습니다.
답변1
터미널 쪽에서
각 터미널이나 터미널 런처의 구성에서는 TERM_SUBTYPE=tilix
또는 TERM_SUBTYPE=deepin
와 같은 환경변수를 설정하도록 정렬합니다 TERM_SUBTYPE=vscode
. 귀하의 변수에서 .zshrc
다음 변수의 값을 확인하십시오.
case $TERM_SUBTYPE in
tilix) …;;
…
'') …;;
esac
이 '')
줄은 아무런 설정도 하지 않은 모습입니다 TERM_SUBTYPE
. 이 경우 특별히 할 일이 없다면 생략하셔도 됩니다.
쉘 측에서 보기
터미널 에뮬레이터는 일반적으로 셸의 상위 프로세스이므로 상위 프로세스를 확인하세요.
case ${$(ps -p $PPID -o comm=):t} in
tilix) …;;
deepin-terminal) …;;
code-insiders) …;;
*) …;
esac
*)
이 줄은 상위 프로세스가 인식된 사례 중 하나가 아닌 경우 대체입니다. 이 경우 특별히 할 일이 없다면 생략하셔도 됩니다.