web-dev-qa-db-ja.com

Nautilus:tmuxを使用するときにターミナルでフォルダーを開く

私はFedora25 gnomeエディション、zshShellを使用しています。右クリックして、ターミナルでフォルダを開くことができます。 gnomeターミナルを開いたときにtmuxを起動するように設定しました。

ターミナルでフォルダを開くと、ターミナルは実際のディレクトリではなく、デフォルトのユーザーディレクトリを開きます。修正方法は?

enter image description here

追加のパラメーターをgnome-terminalのtmuxまたはNautilusに渡す必要があります。

それが別のファイルマネージャーで機能する場合はお知らせください。切り替えの可能性を検討しますが、Nautilusを使用して実行できる場合はそれをお勧めします。

5
Lynob

私はしばらくの間Linuxをメインドライバーとして使用していませんが、これを行うためのプログラムnautilus-open-terminalがありましたが、Fedoraでサポートされているかどうかはわかりません。また、Ubuntu/Debian以外のシステムにインストールできるかどうかはわかりませんが、CanonicalのUnity DEにはこの機能が組み込まれていますが、Gnomeで使用されている方法を複製できる可能性があります。

編集:あなたのコメントに照らして、あなたはあなたの.profileに行を追加して、常にgnome-terminalの現在の作業ディレクトリで所有されていないプロセス(すなわちtmux ./; disown -r && killall gnome-terminal)としてtmuxを開くことができます。ディレクトリ内のターミナルをクリックして開くと、gnome-terminalが開き、すぐに独立したtmuxウィンドウが開き、nautilusが受信した作業ディレクトリが引数として渡されます。

更新:さて、私は2つの方法を見つけました。現在、これらにはそれぞれ独自の問題がありますが、うまくいけば、そのうちの1つで十分に機能します。これらのメソッドは、Bashをシェルとして使用するDebian 8.7インストールと、現在のNautilus/Nemoディレクトリでターミナルウィンドウを起動するプログラムnautilus-open-terminalでテストされました。

方法1。).bashrcファイル(またはこの場合は.zshrc)の最後にtmuxを追加するだけです。これで、開いたターミナルウィンドウは、作業ディレクトリ内のプロセスとしてtmuxをすぐに開きます。

この方法の利点は、シンプルで1つのウィンドウしか開かないことです。

このメソッドの主な欠点は、現在のシェルでは常にネストされたプロセスとして実行されるため、それが問題になる場合は、代わりに他のメソッドを使用することをお勧めします。

方法2.)行gnome-terminal -e tmux ./(今回はプロセス名を引用符で囲みません)を.bashrcまたは.zshrcファイルに追加します。これにより、メインプロセスとしてtmuxを含む新しいターミナルウィンドウが開きます。

この方法の長所は、tmuxウィンドウが切り離されたプロセスであり、現在の作業ディレクトリがNautilus/Nemoウィンドウのディレクトリに設定されたまま開いていることです。

短所は、tmux専用ウィンドウを開いている間、exit.bashrcファイルに追加できないか、tmuxウィンドウも強制終了することです。そうは言っても、tmuxウィンドウを生成するために使用されるgnome-terminalは、ウィンドウのxをクリックするか、tmuxが開いたらgnome-terminalで直接exitを実行することにより、手動で閉じることができます。

2番目の方法は、余分なターミナルウィンドウを手動で閉じる必要があるという点で、あまり便利ではありません。 Open In Terminalコンテキストメニューオプションをクリックすると、現在のディレクトリに専用のtmuxウィンドウが開きます。

3
Alison E.E.

TMUX環境変数を使用すると、exitを使用して、tmuxセッションを終了するときに元の端末を自動的に強制終了できます。

if [[ "$TMUX" == "" ]]  # if not on tmux
then
    tmux
    exit
fi

また、「sessions should be nested with care, unset $TMUX to force "tmuxセッション内でtmuxを呼び出すことによって発生するメッセージ。

0
M Imam Pratama

私が追加しました:

# Start tmux if tmux is not already running
pgrep tmux >/dev/null 2>&1 || exec tmux

.bashrcの最後にあり、すべてが正常に機能しているように見えます。 gnome-terminalを手動で(初めて)起動すると、tmuxが起動します。他の端末を開くと、tmuxがありません(これは私が望んでいることです)。また、Nautilusの任意のフォルダーから(「ターミナルで開く」を使用して)ターミナルを開くことも、期待どおりに機能します。

0
Avinash Meetoo