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