
私はfedora 25 gnomeバージョン、zshシェルを使用しています。端末を右クリックしてフォルダを開くことができます。 tmuxが開いたときにtmuxを起動するようにgnome端末を設定しました。
ターミナルでフォルダを開くと、ターミナルは現在存在する物理ディレクトリの代わりにデフォルトのユーザーディレクトリを開きます。どうすれば修正できますか?
gnome-terminalのtmuxまたはNautilusに追加のパラメータを渡す必要があります。
これが他のファイルマネージャでも機能する場合は、お知らせください。切り替えの可能性を考えてみましょう。しかし、Nautilusを使って行うことができれば、より良いでしょう。
答え1
Linuxをネイティブドライバーとして使用したかどうかはかなりですが、これを実行できるプログラムがありましたが、nautilus-open-terminal
Fedoraがそれをサポートしているかどうかはわかりません。また、Ubuntu / Debianシステムではなくシステムにインストールできるかどうかはわかりませんが、CanonicalのUnity DEにはこの機能が組み込まれており、おそらくGnomeで使用されている方法を複製できます。
.profile
編集:あなたのコメントに応じて、gnome-terminalの現在の作業ディレクトリにある常に開いているtmuxに拒否されたプロセス(たとえば)で行を追加して、ディレクトリ内の端末を右クリックして開くtmux ./; disown -r && killall gnome-terminal
ことができます。 gnome -terminalを実行し、ただちに別のtmuxウィンドウを開き、ノーチラスが受け取った作業ディレクトリを引数として渡します。
アップデート:いいですね。 2つの方法を見つけました。それぞれに固有の問題がありますが、これらのうちの1つがあなたに十分であることを願っています。これらの方法は、Bashをシェルとして使用し、nautilus-open-terminal
現在Nautilus / Nemoディレクトリからターミナルウィンドウを起動するプログラムを使用してDebian 8.7インストールでテストされています。
方法1.)tmux
ファイルの末尾に.bashrc
(またはあなたの場合.zshrc
)追加します。これで、開こうとしているすべてのターミナルウィンドウはすぐに作業ディレクトリのプロセスとしてtmuxを開きます。
この方法の利点は、シンプルでウィンドウを1つだけ開くことができることです。
この方法の最大の欠点は、現在のシェルで常にネストされたプロセスで実行されるため、これが問題になった場合は別の方法を使用する必要があることです。
方法2.)gnome-terminal -e tmux ./
この行(今回はプロセス名を引用符なし)を.bashrc
ファイル.zshrc
に追加します。これにより、tmuxがデフォルトプロセスとして含まれている新しいターミナルウィンドウが開きます。
この方法の利点は、tmuxウィンドウが別のプロセスであり、まだ開いており、現在の作業ディレクトリであるNautilus / Nemoウィンドウディレクトリに設定されていることです。
欠点は、tmux特定のウィンドウを開く間にファイルexit
に追加できないこと、または.bashrc
tmuxウィンドウも終了することです。ただし、tmuxウィンドウを作成するために使用されたgnome端末はウィンドウをx
クリックして手動で閉じたり、exit
tmuxが開いた後にgnome端末で直接実行することもできます。
2番目の方法はあまり便利ではなく、冗長ターミナルウィンドウを手動で閉じる必要があります。Open In Terminal
コンテキストメニューオプションをクリックすると、現在のディレクトリに専用のtmuxウィンドウが開きます。
答え2
私は以下を追加しました:
# Start tmux if tmux is not already running
pgrep tmux >/dev/null 2>&1 || exec tmux
私の.bashrcが終わったら、すべてがうまくいくようです。 gnome端末を手動で(最初に)起動すると、tmuxが起動します。別の端末を開くと、tmux(私が望むもの)はありません。 Nautilusのフォルダからターミナルを開く(「ターミナルで開く」を使用)も期待どおりに機能します。
答え3
TMUX
環境変数を使用してexit
tmuxセッションを終了すると、元の端末を自動的に終了できます。
if [[ "$TMUX" == "" ]] # if not on tmux
then
tmux
exit
fi
また、tmuxセッション内sessions should be nested with care, unset $TMUX to force
の呼び出しによって引き起こされるメッセージを防止します。tmux