Linux에서는 다양한 애플리케이션에 대해 다양한 .zshrc 파일을 가져옵니다.

Linux에서는 다양한 애플리케이션에 대해 다양한 .zshrc 파일을 가져옵니다.

세 가지 질문을 바탕으로:

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

*)이 줄은 상위 프로세스가 인식된 사례 중 하나가 아닌 경우 대체입니다. 이 경우 특별히 할 일이 없다면 생략하셔도 됩니다.

관련 정보