.tmux.conf 中基于 session_name 的条件样式

问题描述 投票:0回答:1

我正在尝试根据 tmux 会话名称设置状态栏的颜色 - 如果名称是“ssh”,则将其设置为绿色,否则为蓝色。我的 .tmux.conf 中有这个片段

# Status bar
%if "#{==:#{session_name},ssh}"
  set -g status-style bg=darkgreen,fg=black
  setw -g window-status-current-style bg=green
%else
  set -g status-style bg=blue
  setw -g window-status-current-style bg=brightcyan
%endif

当我第一次连接到新会话时,状态栏为蓝色。但是,如果我使用

source .tmux.conf
重新加载 conf 文件,它会正确更改为绿色。

这表明 session_name 在第一次加载期间可能不可用。如何在 .tmux.conf 中设置颜色,这样我就不必每次都手动获取它?

tmux
1个回答
0
投票

%if
语句仅在 tmux 服务器启动(或重新加载)时计算一次。您需要根据运行时信息使设置动态化。例如:

set -g status-style 'fg=black,bg=#{?#{==:#{session_name},ssh},darkgreen,blue}'
© www.soinside.com 2019 - 2024. All rights reserved.