[解決済み] 小さいモニタから大きいモニタに切り替えたときに、tmuxのウィンドウを再描画する方法はありますか?
2022-03-23 22:45:44
質問
例えば、Terminal.appでリモートサーバーにssh接続するとします。以前起動した小さなモニタから大きな解像度のモニタで "tmux attach" を行うと、コンソールの周りにドットが描かれます。新しいウィンドウサイズに合わないのです。ウィンドウを再描画してきれいにする方法はないでしょうか? CTRL + L または CTRL - B + R は役に立ちません。manで調べても適切なコマンドは見つかりませんでした。
% tmux -V
tmux 1.5
解決方法は?
tmux は、ウィンドウの寸法を、そのウィンドウが接続されているすべてのセッションで、各寸法の最小値に制限します。もしこれを行わなければ、接続されたすべてのクライアントのためにウィンドウの全領域を表示する賢明な方法はありません。
最も簡単な方法は、アタッチするときに他のクライアントをセッションからデタッチすることです。
tmux attach -d
あるいは、セッションにアタッチする前に、他のクライアントを別のセッションに移動させることもできます。
takeover() {
# create a temporary session that displays the "how to go back" message
tmp='takeover temp session'
if ! tmux has-session -t "$tmp"; then
tmux new-session -d -s "$tmp"
tmux set-option -t "$tmp" set-remain-on-exit on
tmux new-window -kt "$tmp":0 \
'echo "Use Prefix + L (i.e. ^B L) to return to session."'
fi
# switch any clients attached to the target session to the temp session
session="$1"
for client in $(tmux list-clients -t "$session" | cut -f 1 -d :); do
tmux switch-client -c "$client" -t "$tmp"
done
# attach to the target session
tmux attach -t "$session"
}
takeover 'original session' # or the session number if you do not name sessions
より小さなクライアントがセッションに切り替えた場合、画面は再び縮小します。
また、ウィンドウだけを引き継ぐというバリエーションもあります (ウィンドウを新しいセッションにリンクさせる。
aggressive-resize
しかし、一般的なケースでスクリプトを書くのは難しいです(そして、単にセッションから切り離すのではなく、ウィンドウのリンクを解除したり、セッションを終了させたいので、「終了」とは異なります)。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン