首页 > 解决方案 > Tmux 垂直拆分窗口并定义顶部窗格的高度

问题描述

我有一个小脚本,可以将我的终端变成 GPU 的监控视图。我在其中一个窗格中运行的nvidia-smi -l 1命令要求它具有一定的高度,我可以根据 GPU 进程的数量使用

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

(还没有进行正确的计算。)我希望这个过程在右上角的窗格中运行,但不知道如何为该窗格分配一定的高度。我可以很好地定义右下窗格的高度。这是我当前的脚本:

smi_processes=$(nvidia-smi pmon -c 1 | wc -l)
smi_height=$((${smi_processes} + 3))
tmux \
    new-session  'htop' \; \
    split-window -h 'nvidia-smi -l 1' \; \
    split-window -v \; \
    split-window -v 'xdotool key F11'\; \

这将平均分割右侧的两个窗格,然后将终端设置为全屏。我可以定义底部窗格的高度,split-window -v -l [height] \; \但这意味着顶部窗口在不同尺寸的显示器或不同的终端设置上会有不同的高度。我尝试在底部窗格中生成进程,调整它的大小,然后使用 向上交换窗格swap-pane -U,但大小链接到底部窗格。TL;DR:我怎样才能让右上角的窗格有一定的高度,而右下角的窗格占据其余空间?

提前致谢!

当前结果: 当前结果

标签: terminalnvidiatmux

解决方案


通过移动全屏命令并使用resize-pane -yand来修复它select-pane

smi_processes=$(nvidia-smi pmon -c 1 | wc -l)
smi_height=$((${smi_processes} + 5))
tmux \
    new-session  'htop' \; \
    split-window -h 'nvidia-smi -l 1' \; \
    split-window -v \; \
    split-window -v 'xdotool key F11'\; \
    select-pane -t 1 \; \
    resize-pane -y $smi_height \; \
    select-pane -t 2 \; \

推荐阅读