You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置Tmux右上窗格固定高度,右下窗格占剩余空间?

解决tmux右上窗格固定高度的问题

我来帮你搞定这个tmux窗格布局的问题!核心思路是调整拆分顺序,在创建右上窗格时直接指定高度,而不是先均分再调整,这样就能让它保持固定尺寸,右下窗格自动占据剩余空间。

修正后的脚本方案

这里有两种可靠的实现方式,你可以根据习惯选择:

方案一:先分左右,再把右边拆成固定高度的上下

这个思路和你原来的脚本逻辑更接近,只是调整了拆分时的参数和顺序:

smi_processes=$(nvidia-smi pmon -c 1 | wc -l)
smi_height=$((${smi_processes} + 3)) # 可根据实际输出微调偏移量

tmux \
new-session 'htop' \; \
# 1. 水平拆分出右侧大窗格(当前活动窗格自动切换到右侧)
split-window -h \; \
# 2. 垂直拆分右侧窗格,上半部分高度设为smi_height,直接运行nvidia-smi
split-window -v -l ${smi_height} 'nvidia-smi -l 1' \; \
# 3. 切换到右下窗格(可选,如果你要在这里运行其他命令)
select-pane -t 1 \; \
# 4. 执行终端全屏操作(将xdotool命令发送到当前窗格执行)
send-keys 'xdotool key F11' C-m \;

方案二:先分上下固定高度,再把上半部分拆成左右

这种逻辑更直观,先锁定顶部区域的高度,再拆分左右:

smi_processes=$(nvidia-smi pmon -c 1 | wc -l)
smi_height=$((${smi_processes} + 3))

tmux \
new-session 'htop' \; \
# 1. 垂直拆分出顶部固定高度的窗格(当前窗格变为顶部区域)
split-window -v -l ${smi_height} \; \
# 2. 水平拆分顶部区域,右侧运行nvidia-smi
split-window -h 'nvidia-smi -l 1' \; \
# 3. 切换到右下窗格(可选)
select-pane -t 1 \; \
# 4. 终端全屏
send-keys 'xdotool key F11' C-m \;

为什么原来的方法不行?

你之前的脚本是先水平拆分,再连续两次垂直拆分,这会让右侧两个窗格自动均分高度。而通过先选中目标区域,再用-l参数指定拆分后的新窗格高度,就能直接固定右上窗格的尺寸,剩余空间会自动分配给右下窗格,不受终端整体尺寸变化的影响。

微调高度计算

如果nvidia-smi -l 1的输出还是出现滚动,你可以手动调整smi_height的偏移量:

  1. 先运行nvidia-smi pmon -c 1看实际输出的行数
  2. 把+3改成更合适的数值(比如+2或+4),确保刚好容纳所有输出行

内容的提问来源于stack exchange,提问作者RnRoger

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 18:42:40