tmux
私の端末のサイズに関係なく、セッションのウィンドウを特定のサイズに強制したいと思います。どうすればいいですか?
コンテキスト
ここで説明されているように、asciinemaにtmuxをログインしようとしています。https://github.com/asciinema/asciinema/wiki/Recording-tmux-session(コマンドでasciinemaを実行しますtmux attach
)。しかし、モニターが大きすぎて強制的にサイズを変更したいですtmux window
。
私が試したこと
tmuxセッションの2番目のビューを使用してウィンドウサイズを強制する成功したソリューションがありますがmate-terminal -e 70x20
...これはハッキングのように見えます。
-xを使用してセッションサイズを強制します。
tmux new-session -x $X -y $Y -d
このオプションは無視されるようです(攻撃的なサイズ設定を試してみました)。
答え1
不要な領域を占めるには、少なくとも3つのウィンドウを開く必要があります。次のことを試してください
tmux new-session \; split-window -h \; split-window -v \; resize-pane -x 70 -y 20
答え2
これにより、目的のタスクが実行されます。
tmux new-session \; setw force-width 80 \; setw force-height 24 \; attach
もちろん、または$X
andで。$Y
答え3
これはtmuxのバグであり、開発ビルドで修正されました。現在リリースされている最新バージョンは3.2aであり、この問題は解決されません。
新しく分離されたセッションでは、-xオプションと-yオプションを無視するようです。ドキュメントによると、これらの値は新しいウィンドウのデフォルトのサイズ設定を上書きします。これは、新しいセッションの作成、デフォルトのサイズ設定、新しいウィンドウの開始、および初期ウィンドウの終了を示唆しています。これはうまくいきます。ただし、-xおよび-yオプションを使用すると、デフォルトのサイズ設定をオーバーライドして調整する必要はありませんが、まだ新しいウィンドウを作成する必要があります。問題は、-xと-yが初期ウィンドウの作成後にセッションのデフォルトサイズを変更することです。
tmux new-session -d -x $X -y $Y \; new-window ${MY_COMMAND} \; kill-window -t 0
したがって、必要なデフォルトサイズで新しいセッションを作成し、希望のサイズで新しいウィンドウを作成し、$ {MY_COMMAND}を実行してから、最後に別のウィンドウを終了します。これは、必要なすべてのサイズの仮想端末でコマンドを実行するために機能します。