0

在我的一个 tmux 窗口中,我在 Docker 容器内运行 Weechat IRC 客户端,我使用 Bash 脚本对其进行实例化,这使 tmux 窗口名称为“bash”。https://imgur.com/a/Dc20YEB

我希望 tmux 窗口名称为“weechat”,就好像我已经运行了本地安装的 weechat - 就像manor的情况一样nvim

我知道“窗口名称”和“窗格标题”之间存在区别,我可以使用(如手册页中所述)设置窗口名称:

tmux set-option allow-rename on
tmux select-pane -T fooname
printf '\033kWINDOW_NAME\033\\'

但这会将我的窗口名称更改为1:tpreston@hostname:~*. 我在 Fedora 30 上运行 tmux 2.9a。

这些是我的选择

activity-action other
assume-paste-time 1
base-index 0
bell-action any
default-command ""
default-shell "/bin/bash"
default-size "80x24"
destroy-unattached off
detach-on-destroy on
display-panes-active-colour red
display-panes-colour blue
display-panes-time 1000
display-time 4000
history-limit 50000
key-table "root"
lock-after-time 0
lock-command "lock -np"
message-command-style fg=yellow,bg=black
message-style fg=black,bg=yellow
mouse on
prefix C-Space
prefix2 None
renumber-windows off
repeat-time 500
set-titles off
set-titles-string "#S:#I:#W - \"#T\" #{session_alerts}"
silence-action other
status on
status-bg green
status-fg black
status-format[0] "#[align=left range=left #{status-left-style}]#{T;=/#{status-left-length}:status-left}#[norange default]#[list=on align=#{status-justify}]#[list=left-marker]<#[list=right-marker]>#[list=on]#{W:#[range=window|#{window_index} #{window-status-style}#{?#{&&:#{window_last_flag},#{!=:#{window-status-last-style},default}}, #{window-status-last-style},}#{?#{&&:#{window_bell_flag},#{!=:#{window-status-bell-style},default}}, #{window-status-bell-style},#{?#{&&:#{||:#{window_activity_flag},#{window_silence_flag}},#{!=:#{window-status-activity-style},default}}, #{window-status-activity-style},}}]#{T:window-status-format}#[norange default]#{?window_end_flag,,#{window-status-separator}},#[range=window|#{window_index} list=focus #{?#{!=:#{window-status-current-style},default},#{window-status-current-style},#{window-status-style}}#{?#{&&:#{window_last_flag},#{!=:#{window-status-last-style},default}}, #{window-status-last-style},}#{?#{&&:#{window_bell_flag},#{!=:#{window-status-bell-style},default}}, #{window-status-bell-style},#{?#{&&:#{||:#{window_activity_flag},#{window_silence_flag}},#{!=:#{window-status-activity-style},default}}, #{window-status-activity-style},}}]#{T:window-status-current-format}#[norange list=on default]#{?window_end_flag,,#{window-status-separator}}}#[nolist align=right range=right #{status-right-style}]#{T;=/#{status-right-length}:status-right}#[norange default]"
status-format[1] "#[align=centre]#{P:#{?pane_active,#[reverse],}#{pane_index}[#{pane_width}x#{pane_height}]#[default] }"
status-interval 5
status-justify left
status-keys emacs
status-left "[#S] "
status-left-length 10
status-left-style default
status-position bottom
status-right "#(/home/tpreston/.tmux/plugins/tmux-battery/scripts/battery_status_bg.sh) b:#(/home/tpreston/.tmux/plugins/tmux-battery/scripts/battery_icon.sh)#(/home/tpreston/.tmux/plugins/tmux-battery/scripts/battery_percentage.sh) | %a %F %H:%M "
status-right-length 40
status-right-style default
status-style fg=black,bg=green
update-environment[0] "DISPLAY"
update-environment[1] "KRB5CCNAME"
update-environment[2] "SSH_ASKPASS"
update-environment[3] "SSH_AUTH_SOCK"
update-environment[4] "SSH_AGENT_PID"
update-environment[5] "SSH_CONNECTION"
update-environment[6] "WINDOWID"
update-environment[7] "XAUTHORITY"
visual-activity off
visual-bell off
visual-silence off
word-separators " -_@"
4

2 回答 2

1
# rename window name of current window
tmux rename-window newname

# rename another window
tmux rename-window -t <target> new-name

参数<target>可以是

  • 窗口名称
  • 窗口索引
  • 带有会话前缀的窗口名称或索引:<session>:<window>
于 2019-09-18T14:18:10.647 回答
1

tmux 选择窗格 -T fooname

这将设置窗格标题而不是窗口名称。使用“tmux rename-window”更改窗口名称。

tmux 设置选项允许重命名打开

printf '\033kWINDOW_NAME\033\'

这确实会更改窗口名称。

但这会将我的窗口名称更改为 1:tpreston@hostname:~*

这是因为其他东西正在重命名窗口,可能您的 shell 正在将它作为提示的一部分。

如果您想启用 allow-rename 并自己使用 \033k 转义序列,则需要跟踪并禁用它。

如果您的脚本与 tmux 在同一主机上运行,​​最好只关闭允许重命名并从脚本运行“tmux renamew weechat”。

于 2019-09-18T13:56:01.950 回答