職場にはモニターがあるデスクトップがあり、いくつかのtmuxセッションが実行されています。家では、しばしばこのデスクトップにSSHでアクセスして、実行中のtmuxセッションに入ります。自宅でSSHにアクセスするときいいえX11を使用したいので、そのフラグは使用しません-X
。自宅でsshing後に職場に戻り、デスクトップ上でこれらのtmuxセッションを使用すると、GUIを作成することはできなくなります。明らかにファイルを開くことができません。 matplotlibを使用しようとすると、メッセージが表示されます: cannot connect to X server
。
自宅でSSHに接続して既存のtmuxセッションを開いた後、後でデスクトップでGUIコンテンツを開く機能を再接続するにはどうすればよいですか?
自宅でSshingをすると、tmuxセッションがGUIコンテンツを生成できることを忘れてしまうようです。
編集する:
ベストアンサー1
私は同じ問題に直面しました。私は通常tmux
、マルチモニタX11デスクトップ環境の一部として使用し、時にはX11をサポートしていないChromebookでsshを使用するか$DISPLAY
。 @chrisdembiaの答えはうまくいきますが、DISPLAY
残りのtmuxセッション中に新しいウィンドウごとに変更する必要があるので、痛いです。
永続的な解決策は、DISPLAY
tmux設定のtmux変数からそれを削除することです。update-environment
次のコマンドを使用して現在の値を表示できます。
tmux show-options -g update-environment
これを削除するために、~/.tmux.conf
以下を除くすべての項目を含む次の行をファイルに追加しましたDISPLAY
。
set-option -g update-environment "SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY"
これについては以下で詳細に説明する。SSH経由のtmuxセッションでシェルDISPLAY変数をリセットするDISPLAY
、さまざまな一般的なユースケースに基本的に存在する理由を説明します。