tmux 设置标题不起作用?

qua*_*nta 17 tmux xterm

为了tmux在每次 shell 登录时启动,将以下内容添加到~/.bashrc(在服务器上):

if [ $TERM != "screen-256color" ] && [  $TERM != "screen" ]; then
    tmux attach || tmux new; exit
fi
Run Code Online (Sandbox Code Playgroud)

当 ssh 进入主机时,我还想将窗口标题更改为user@server(而不是user@localhost)。这是我的~/.tmux.conf

set -g prefix C-a
unbind C-b
bind C-a send-prefix

set -g set-titles on
set -g set-titles-string "#T"

bind-key o split-window -v
bind-key e split-window -h

bind-key w kill-pane

set -g terminal-overrides 'xterm*:smcup@:rmcup@'
Run Code Online (Sandbox Code Playgroud)

如您所见,set-titles被设置为on,但它没有按预期工作。

更多信息:

在 tmux 之外:

$ echo $TERM
xterm
Run Code Online (Sandbox Code Playgroud)

tmux 内部:

$ echo $TERM
screen
Run Code Online (Sandbox Code Playgroud)

show -g: https://clbin.com/h7oDh

tmux infohttp : //sprunge.us/XHCB

这是运行一段时间后的日志tmux -vvvvv

如果我注释掉 中的行~/.bashrc,从我的笔记本电脑,ssh 到服务器,标题栏显示正确 ( quanta@server),然后tmux从那里开始也按预期工作。

但是如果我想tmux在登录后立即启动,标题栏仍然quanta@Ubuntu在 ssh 之后。


更新 2013 年 5 月 10 日星期五 07:51:23 ICT

exit为了在最后一个tmux窗口关闭时不关闭 shell 会话,我删除了该命令:

if [ $TERM != "screen-256color" ] && [  $TERM != "screen" ]; then
    tmux attach || tmux new
fi
Run Code Online (Sandbox Code Playgroud)

奇怪的是:

  • ssh 到服务器 -> 标题栏: quanta@Ubuntu
  • 分离tmux-> 标题栏切换到quanta@server
  • tmux再次附加-> 标题栏仍然正确显示 quanta@server

我不确定它是否与PROMPT_COMMAND环境变量有关:

之外tmux

$ echo $PROMPT_COMMAND 
echo -ne "\033]0;${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\007"
Run Code Online (Sandbox Code Playgroud)

内部tmux

$ echo $PROMPT_COMMAND
echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/#$HOME/~}"; echo -ne "\033\\"
Run Code Online (Sandbox Code Playgroud)

qua*_*nta 15

问题解决了!

要启用原生 xterm 鼠标滚动tmux,很多wiki问答站点博客文章都建议添加如下一行:

set -g terminal-overrides 'xterm*:smcup@:rmcup@'
Run Code Online (Sandbox Code Playgroud)

~/.tmux.conf。它是罪魁祸首。

要在终端窗口中允许 xterm 标题,您还需要添加XT标志,如下所示:

set -g terminal-overrides "xterm*:XT:smcup@:rmcup@"
Run Code Online (Sandbox Code Playgroud)

来源:http : //opennomad.com/content/goodbye-screen-hello-tmux

  • 谢谢你的帖子。在我使用 `rxvt` 的情况下,设置是 `set -ga terminal-overrides ",rxvt*:XT"` (3认同)
  • 正如@favadi 指出的那样,正确的解决方法是使用带有“set”的“-a”选项来附加 smcup/rmcup 覆盖。这将解决其他奇怪的问题,例如无法正确设置光标形状。 (2认同)