Tmux will not stop auto-renaming windows
Solution 1
A likely cause for this is, that zsh is configured to update the window title when starting a program or issuing the prompt. This is done by using the terminal escape sequence \ek<TEXT>\e\\
where <TEXT>
is the window title.
To prevent this you have two options:
-
Disallow window renaming in the tmux configuration.
Just add
set allow-rename off
to your
~/.tmux.conf
. This prevents any program from changing the window title by using the aforementioned terminal escape sequence. -
Track down the setting in your zsh configuration and disable it.
If you are using oh-my-zsh, it should be enough to set
DISABLE_AUTO_TITLE="true"
in your
~/.zshrc
(or just uncomment it, if you are using the default.zshrc
template from oh-my-zsh).If you use your own configuration or some other configuration framework, you should be able to track it down by searching for
\ek
(do not forget to quote the backslash if your search tool requires it).
Solution 2
For people running bash and landing on this result, the thing that sets the title is the PROMPT_COMMAND
environmental variable, which some shared system annoyingly set. You can do that with unset PROMPT_COMMAND
(e.g. in your .bashrc
)
Solution 3
For this to work for me I had to add this line to ~/.tmux.conf
set-window-option -g allow-rename off
Related videos on Youtube
Comments
-
Alexander Starbuck almost 2 years
A problem I have with Tmux - in the
.tmux.conf
file I have told him not to rename windows after I set their names but it seems that it is not "respecting my authority" :).My system:
- OSX El Capitan
- Tmux 2.1 (installed via Brew)
- Zshell
Here is my ~/.tmux.conf content (I apologise it's quite long):
# set correct term set -g default-terminal screen-256color # set prefix key to ctrl+a #unbind C-b set -g prefix C-a # reload config without killing server bind R source-file /users/edchigliak/.tmux.conf # enable wm window titles set -g set-titles on # disable auto renaming set -g automatic-rename off # border colour set -g pane-border-fg blue set -g pane-border-bg default set -g pane-active-border-fg blue set -g pane-active-border-bg default # wm window title string (uses statusbar variables) set -g set-titles-string "tmux:#I [ #W ]" # initialize sessions bind S source-file ~/.tmux.conf bind I source-file ~/.tmux.conf # environment set -g update-environment "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY" # statusbar -------------------------------------------------------------- set -g window-status-format "#I:#W" set -g window-status-current-format "#I:#W" set -g status-keys vi bind-key -t vi-edit Up history-up bind-key -t vi-edit Down history-down set -g status-interval 1 set -g status-justify centre # center align window list # default statusbar colors # wm window title string (uses statusbar variables) set -g set-titles-string "tmux:#I [ #W ]" # initialize sessions bind S source-file ~/.tmux.conf bind I source-file ~/.tmux.conf # environment set -g update-environment "DISPLAY SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION WINDOWID XAUTHORITY" # statusbar -------------------------------------------------------------- set -g window-status-format "#I:#W" set -g window-status-current-format "#I:#W" set -g status-keys vi bind-key -t vi-edit Up history-up bind-key -t vi-edit Down history-down set -g status-interval 1 set -g status-justify centre # center align window list # default statusbar colors set -g status-fg white set -g status-bg default # default window title colors set-window-option -g window-status-fg black set-window-option -g window-status-bg default set-window-option -g window-status-attr dim # active window title colors set-window-option -g window-status-current-fg white set-window-option -g window-status-current-bg default set-window-option -g window-status-current-attr dim # command/message line colors set -g message-fg white set -g message-bg black set -g message-attr bright # Statusbar starting in X or not # if '[ -n "$DISPLAY" ]' 'source-file ~/.tmux/inx' # if '[ -z "$DISPLAY" ]' 'source-file ~/.tmux/xless'
If I try:
~ > echo $TERM
I get the correct:
screen-256color
which makes me believe that it is sourcing the right
.conf
file. Also, control key bindings DO change fromCtrl+b
toCtrl+a
. However, window names that I change viaCtrl + a
and then,
simply will not stay put.Any ideas what is going on? Thanks!
-
Alexander Starbuck almost 8 yearsYou were right! ZSH was messing things up. I had to uncomment this line
export DISABLE_AUTO_TITLE="true"
in my.zshrc
. Please create an answer to my question and I'll gladly accept it.
-
vitiral about 6 yearsah, thankyou thankyou thankyou! This was KILLING me :) :) :)
-
LoranceChen almost 6 yearsplease remember reload config file with
tmux source-file ~/.tmux.conf
-
user68873 almost 5 yearsLikewise, you might have a .vimrc setting causing the rename. Perhaps previously you followed this advice stackoverflow.com/questions/15123477/….
-
karatedog over 2 yearsI'd like to emphasize this setting is per window. If you create multiple windows from a script, you have to put
set allow-rename off
after every window creation command as that will be the active window at that moment.