如何強制 tmux 視窗為給定大小

如何強制 tmux 視窗為給定大小

我想強制tmux會話中的視窗為特定大小,無論我的終端有多大。我怎樣才能做到這一點?

情境

我正在嘗試在 asciinema 中記錄 tmux,如此處所述https://github.com/asciinema/asciinema/wiki/Recording-tmux-session(在命令上運行 asciinema tmux attach)。但是顯示器太大了,我想強制調整tmux window.

我嘗試過的事情

我有一個成功的解決方案,我使用 tmux 會話的第二個視圖來mate-terminal -e 70x20強制視窗大小......但這看起來像是 hack。

嘗試使用 -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},最後殺死另一個視窗。這應該適用於在需要任何尺寸的虛擬終端中執行命令。

相關內容