Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Tmux will not stop auto-renaming windows

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 from Ctrl+b to Ctrl+a. However, window names that I change via Ctrl + a and then ,simply will not stay put.

Any ideas what is going on? Thanks!

like image 566
Alexander Starbuck Avatar asked Jul 23 '16 16:07

Alexander Starbuck


3 Answers

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).

like image 118
Adaephon Avatar answered Nov 16 '22 10:11

Adaephon


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)

like image 41
Davide Avatar answered Nov 16 '22 11:11

Davide


For this to work for me I had to add this line to ~/.tmux.conf

set-window-option -g allow-rename off
like image 4
Drew LeSueur Avatar answered Nov 16 '22 10:11

Drew LeSueur