在一个 tmux 会话中使用多个终端 x-windows

在一个 tmux 会话中使用多个终端 x-windows

我通常使用 2 个不太垂直对齐的显示器(我的左显示器下方有一个台式电源),但我希望屏幕上并排有 4 个终端窗口,我可以轻松地循环浏览它们,如下所示:

在此输入图像描述

这种安排让我非常难过,因为我无法仅使用键盘以理智的方式轻松地循环浏览所有 4 个窗口(alt-tab 对我来说不起作用,因为它不会保留所有 4 个窗口的“顺序” - 如果我反复按 alt-tab,它只是在我的 2 个最近最少使用的窗口之间弹跳)

有没有一种方法可以让 tmux 生成第二个 x 窗口,以便我可以拥有 2 个 x 窗口,每个 x 窗口内有 2 个 tmux 窗格?

答案1

tmux允许您创建“会话组” - 可以全部附加到同一组窗口的多个会话。

(感谢 https://gist.github.com/chakrit/5004006:)

在左侧终端中,创建一个新的会话+窗口组。

tmux new-session -s left

像往常一样将其分成多个窗格。

:split-window -v

在另一个(右侧)终端中,连接到现有窗口组。您必须为其指定要连接的旧名称,以及其自己的会话名称以区分它。

tmux new-session -t left -s right

在该会话中,创建另一个窗口并拆分

:new-window
:split-window -h

现在,您可以tmux在每个(终端)窗口中看到所有 ( ) 窗口,但每个窗口中的视图都是独立的。

要从一种切换到另一种(不使用窗口管理器自己的快捷方式),您可以使用例如。xdo工具

xdotool search --name 'left:0:' windowactivate
xdotool search --name 'right:1:' windowactivate

这些假设您已启用 的tmux选项set-titles,以便为终端提供可搜索的名称;并且每个窗口中仅使用一个tmux窗口(一组窗格)。

答案2

您将需要tmux在每个终端中启动一个单独的会话,然后将每个会话的单个tmux窗口垂直拆分为两个窗格。

因此,在每个终端中:

$ tmux new-session \; split-window -h

或者更短,在每个终端中:

$ tmux new \; splitw -h

您需要两个会话,因为通过一个会话,两个终端将始终同步并显示相同的tmux窗口。

然后使用桌面的快捷方式在两个终端之间切换。

就我个人而言,我会选择一台显示器、一个tmux会话和两个(或多个)tmux彼此“后面”的分割窗口,并使用Ctrlb-在它们之间交换n,但这是一个品味问题。

$ tmux new \; splitw -h \; neww \; splitw -h

答案3

您不能采用一种低技术方法来调整一个终端的大小(通过拖动边缘)以覆盖两个显示器,从而使中心分隔线位于两个显示器的边界吗?

相关内容