首页 > 解决方案 > 无法将 tmux 窗口标题设置为当前程序

问题描述

我对 tmux 很陌生,并且已经使用了一周左右。我希望将 tmux 窗口标题设置为我正在运行的当前程序,例如 vim/htop 等,而不是我连接的主机。

下面是我的配置,根据 tmux 手册页#W用于此目的,但它似乎不适用于我的情况,并且我的窗口标题始终设置为fqdn[username]

set -g status on
set -g status-interval 1
set -g status-fg colour231
set -g status-bg colour234
set -g status-left-length 20



set -g status-left '#{?client_prefix,#[fg=colour254]#[bg=colour31]#[bold],#[fg=colour16]#[bg=colour254]#[bold]} #S #{?client_prefix,#[fg=colour31]#[bg=colour234]#[nobold],#[fg=colour254]#[bg=colour234]#[nobold]}'


set -g window-status-format "#[fg=colour244,bg=colour234]#I #[fg=colour240] #[default]#W "
set -g window-status-current-format "#[fg=colour234,bg=colour31]#[fg=colour117,bg=colour31] #I  #[fg=colour231,nobold]#W #[fg=colour31,bg=colour234,nobold]"
set -g window-status-last-style fg=colour31
set-window-option -g window-status-fg colour249

set -g status-right-length 150
set -g status-right  "#[fg=colour225,bg=colour234]#[fg=colour234,bg=colour225] #(date +%a' '%b' '%d) %H:%M#[fg=colour234]#[bg=colour234]#{?pane_synchronized,#[bg=colour236]#[fg=colour160]#[fg=colour255]#[bg=colour160] PANES-ARE-SYNCED !! #[fg=colour234]#[bg=colour=234],#[fg=colour22]#[fg=colour255]#[bg=colour22] PANES-NOT-SYNCED #[fg=colour234]#[bg=colour234]}#[fg=colour255,bg=colour234]#[fg=colour234,bg=colour255,bold]#h"

所以任何人都可以请让我知道我该怎么做。

标签: tmux

解决方案


我发现在某些机器上我会得到 ausername@hostname:~而在其他机器上我会得到可执行文件的名称。在两台机器上tmux show -gw显示:

automatic-rename on
automatic-rename-format "#{?pane_in_mode,[tmux],#{pane_current_command}}#{?pane_dead,[dead],}"

所以我想知道发生了什么......事实证明,该选项allow-renameon我可以看到的地方username@hostname:~以及off我看到当前可执行文件名称的地方。

allow-rename使您的 shell(在我的情况下为 bash)可以使用转义序列更改窗格标题,并且在某些配置中(例如,如果您的TERM环境变量以 开头screen)标题将在每次显示提示时更新(这是更多与 shell 相关的问题,因此如果您有兴趣,请PS1/etc/bash/bashrc) 中查找信息。要查看效果,请尝试以下操作:

echo -en '\033kTMUXISCOOL\033]' ; sleep 5

当您在其中运行该命令时,tmux您应该会看到当前窗格标题更改TMUXISCOOL为 5 秒钟,然后返回到username@hostname:~. 通过将以下行放入~/.tmux.conf

set -g allow-rename off

窗格标题应显示当前可执行文件...或automatic-rename-format.


推荐阅读