如何强制 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},最后杀死另一个窗口。这应该适用于在需要任何尺寸的虚拟终端中运行命令。

相关内容