Linuxでは、さまざまなアプリケーション用のさまざまな.zshrcファイルをインポートします。

Linuxでは、さまざまなアプリケーション用のさまざまな.zshrcファイルをインポートします。

3つの質問に基づいて:

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

*)この行は、親プロセスが認識されたケースの1つでない場合の置換です。この場合、特にすることがない場合は省略しても構いません。

おすすめ記事