Gnome端末のカスタマイズコマンドと動的作業ディレクトリ

Gnome端末のカスタマイズコマンドと動的作業ディレクトリ

これは他の質問へのフォローアップ

gnome-terminal設定ファイルでカスタムcommand()を使用しています/usr/bin/fish。 Ubuntu 14.04を使用している場合は、Ctrl-Shift-Nを押します。同じディレクトリを現在の端末として使用します。 16.04では状況が変わり、今はいつも終わります$HOME。前の動作が欲しい

これは調達とは何の関係もありません/etc/profile.d/vte.sh。 Fishはタイトルバーでディレクトリの変更を観察できるため、これは正しく行われます。 gnome-terminal 設定ファイルでカスタムコマンドボックスを選択解除すると、新しいターミナルウィンドウで現在のディレクトリが正しく使用されます。しかし、私のシステムのデフォルトシェルであるbashを使用します。

chsh私のシステムシェル()は他のシステムで共有され、フィッシュはそのシステムで利用できないため変更できません。

現在のディレクトリが端末で使用できないため、Fishはこの問題を解決する方法を見つけることができませんでした。

編集:これはUbuntuでの回帰なので、私もUbuntuで#1609342として報告してください。

答え1

Gillesがコメントで述べたように、SHELL変数の設定も機能します。他の答えの欠点はありません。詳細は次のとおりです。

  1. .xsessionrcホームディレクトリにコンテンツを作成します。

    SHELL=/usr/bin/fish
    
  2. gnome-terminal 設定ファイルオプションでカスタムコマンドを無効にします。

  3. ログアウトしてもう一度ログインしてください。

Gnome端末はこの変数を尊重し、このカスタムコマンドを使用する必要があります。 Ubuntu 16.04.1では私にとって効果的で、作業ディレクトリの問題を解決しました。

答え2

Waylandセッションを運営する方のために、このソリューションSHELL変数の設定に基づくアプローチは、Waylandが.xsessionc、.profile、または.bashrcを含むシェルファイルを取得できないため、機能しません。

私に役立つ解決策のバリエーションは、GNOME端末用のカスタムランチャーを作成し、envを使用してSHELL環境変数を設定することでした。

env SHELL=/usr/bin/fish gnome-terminal

答え3

1つの回避策は、次のものを追加することです.bashrc

if [ -f /usr/bin/fish ]; then
    exec /usr/bin/fish
fi

欠点:フィッシュユーザーとしてPOSIX互換シェルが必要な場合があります。上記のハッキングを行うと、bash別の魚の殻を得ることができます。

関連情報