tmuxウィンドウを強制的に指定のサイズにするにはどうすればいいですか

tmuxウィンドウを強制的に指定のサイズにするにはどうすればいいですか

tmux端末のサイズに関係なく、セッション内のウィンドウを特定のサイズに強制したいです。どうすればいいでしょうか?

コンテクスト

ここで説明されているように、asciinemaでtmuxを記録しようとしていますhttps://github.com/asciinema/asciinema/wiki/レコーディング-tmux-セッション(コマンドで asciinema を実行しますtmux attach)。ただし、表示が大きすぎるので、 のサイズを強制したいと思いますtmux window

私が試したこと

mate-terminal -e 70x20tmux セッションの 2 番目のビューを使用してウィンドウ サイズを強制するという回避策が成功しましたが、これはハックのようです。

-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$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} を実行する目的のサイズの新しいウィンドウが作成され、最後に他のウィンドウが終了します。これは、必要なサイズの仮想端末でコマンドを実行する場合に機能します。

関連情報