tmux:始终在左侧显示会话的窗口列表

tmux:始终在左侧显示会话的窗口列表

我希望 tmux 始终在左侧显示会话窗口列表。

当我单击列表中的某个窗口时,它应该切换到右侧的该窗口(无预览 - 直接切换到它),并将焦点切换到该窗口,但仍然保持左侧的窗口列表打开切换到的窗口的行现在突出显示。结果看起来类似于mprocs 提供

我以为choose-tree命令可能会有所帮助,也许可以使用自定义模板。通常choose-tree在用户选择窗口后消失,因此可能必须在用户选择后重新运行(可能在“while”循环中)。

我应该如何实现这个目标?

答案1

创建三个会话:

  • menu
  • windows
  • main,包含一个窗口,水平拆分为两个窗格,分别运行附加到menuwindows会话的客户端。

在 中menuchoose-tree循环运行:

  • 仅显示会话中窗口的过滤器windows,以及
  • 一个调用的模板select-window
while true; do
  tmux choose-tree -f '#{==:windows,#{session_name}}' \
    'select-window -t %%; select-pane -t main:0.1'
done

附加到主会话。

去做:

  • 选择窗口后,所选窗口会menu跳回顶部。
  • 窗口选择menu需要双击而不是单击。
  • menuwindows在顶部显示会话(我们只需要一个窗口列表,而不是树)。
  • menu在会话中创建新窗口时不会自动更新windows确实如此,但有延迟。
  • menu不会自动调整大小为最长窗口名称的宽度。
  • menu没有“新窗口”右键菜单条目。

相关内容