
これは他の質問へのフォローアップ。
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変数の設定も機能します。他の答えの欠点はありません。詳細は次のとおりです。
.xsessionrc
ホームディレクトリにコンテンツを作成します。SHELL=/usr/bin/fish
gnome-terminal 設定ファイルオプションでカスタムコマンドを無効にします。
- ログアウトしてもう一度ログインしてください。
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
別の魚の殻を得ることができます。