6

您如何在tmuxinator会话中的每个窗格上设置唯一的标题?

我正在尝试运行多个窗格以显示从htop运行ssh到不同服务器的输出。我的配置如下:

project_name: Server Monitor
windows:
  - servers:
      layout: tiled
      panes:
        - ssh -t -i mykey.pem user@server1 htop
        - ssh -t -i mykey.pem user@server2 htop
        - ssh -t -i mykey.pem user@server3 htop

当我用 启动它时tmuxinator local,它运行的命令很好,我看到了 htop 的输出。但是,这些窗格看起来都一样,并且没有显示 SSH 标题,因此几乎无法分辨哪个窗格对应于哪个服务器。

如何更改我的配置以便在每个窗格上显示唯一的标题?

这个例子表明底层tmux支持这个特性,但是我不确定如何通过tmuxinator访问这个特性。

4

2 回答 2

7

您需要做的是首先在您.tmux.conf的行中启用窗格状态:

set -g pane-border-format "#{pane_index} #{pane_title}"
set -g pane-border-status bottom

然后在您的 tmuxinator 配置中添加一个printf命令,该命令将发送适当的转义序列以动态设置窗格标题。现在每个窗格将有 2 个命令,因此您需要添加另一个带有名称的缩进级别。

project_name: Server Monitor
windows:
  - servers:
      layout: tiled
      panes:
        - p1:
          - printf '\033]2;%s\033\\' 'server1'
          - ssh -t -i mykey.pem user@server1 htop
        - p2:
          - printf '\033]2;%s\033\\' 'server2'
          - ssh -t -i mykey.pem user@server2 htop
        - p3:
          - printf '\033]2;%s\033\\' 'server3'
          - ssh -t -i mykey.pem user@server3 htop

您至少需要 tmux 2.3 才能在边框中显示窗格标题。

于 2017-12-17T09:36:41.203 回答
0

对于遇到此问题的其他任何人,并且:

  • 不想改变他们的布局
  • 解析 Meuh 答案中的结构时出现问题(我遇到了undefined method shellescape for #<Array错误。

您仍然需要将这些添加到您的.tmux.conf

set -g pane-border-format "#{pane_index} #{pane_title}"
set -g pane-border-status bottom

您可以;在 ssh 命令之前添加一个并执行以下操作:

name: myBoxes
root: ~/
windows:
- hosts:
    layout: tiled
    panes:
    - printf '\033]2;%s\033\\' 'role_storage_v45 : hostname2.net'; ssh 10.20.30.1
    - printf '\033]2;%s\033\\' 'role_dns_v15 : hostname1.net'; ssh 10.20.30.2
于 2019-07-16T15:16:46.567 回答