Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I have customized my ZSH prompt with oh-my-zsh to make it more readable and add information about git if I'm in a repository.

Example :
bob@inf [~/docs] %
bob@inf [~/src/nicest] master % (in a git repository)

It works well but I have some bugs with tmux and the window name. It still display non sense value and I cannot disable it with automatic-rename off (it just do not work, the window name change after each command), for the first example tmux use ~/docs for the window name.

I'm not sure how I can fix it, I would like to keep my zsh prompt as it is, if can make change but would like to understand where is the problem ?

Another solution may be to redefine command settile (from this answer) but I'm not sure how to do it the right way.

share|improve this question
up vote 68 down vote accepted

I took a peek at oh-my-zsh and found a likely suspect.

When the value of the TERM environment variable starts with screen (which it should under both screen and tmux), it uses a screen terminal control sequence to set the window’s name to

  • (just before displaying a shell prompt)
    the left-most portion of the “tilde compressed” path of the current working directory (.. followed by the last 13 characters or the entire path if it less than 15 characters) and
  • (just before starting a command)
    the first “word” of about-to-be-run command (not counting ssh, sudo, and a few others).

It sounds like it is working this way for you (you said that your window named changed to ~/docs when you were in that directory). If you want to disable this automatic renaming, you can can disable it completely by setting the DISABLE_AUTO_TITLE shell parameter to true in your .zshrc:

DISABLE_AUTO_TITLE=true

If you just set this in an interactive shell, you will end up with an empty string for the current window’s name, but oh-my-zsh will stop updating the window before each prompt and command in that shell instance (it needs to be in your .zshrc to affect all new shell instances).

share|improve this answer
4  
This is such a perfect answer. Accurate, informative, concise and to the point. Moreover, it provides a solution in addition to answering the original question ("understanding where is the problem").It's only sad that whoever took the time to ask didn't bother marking this as the answer. – dmondark Mar 5 '13 at 6:03
    
Thank you thank you thank you thank you thank you thank you – Jezen Thomas Sep 25 '14 at 10:16
    
where is a .zshrc file for all users? – andi Jan 16 '15 at 9:02

I know that the answer above gives you a solution, but another one is to simply add this option your the ~/.tmux.conf

set-option -g allow-rename off
share|improve this answer
    
This is a better solution since it only affects tmux. – Paul Oliver Nov 15 '14 at 4:32
    
Even with this setting, join-pane followed by break-pane resets the window name :( – djsadinoff Dec 22 '15 at 14:13

I met the same issue, which is tmux's window name was changed even by setting in .tmux.conf:

set-window-option -g automatic-rename off

Thanks Chris's answer. My tmux window name wasn't renamed automatically after I changed:

set -g default-terminal "screen-256color"

to:

set -g default-terminal "xterm-256color"
share|improve this answer

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .