Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

Right now the title defaults to reattach-to-user-namespace (OS X), which is pretty annoying. Is there an option I can put into my tmux.conf to get another default title?

If not, how would I make a key binding that creates a new window and then prompts me for a name?

share|improve this question
    
See answer here superuser.com/questions/306028/… –  Fredrik Pihl Mar 13 '13 at 19:38
    
That's about disabling automatic renaming (which I already did), not about default names, right? –  js-coder Mar 13 '13 at 19:46
    
I guess you're right, sorry! –  Fredrik Pihl Mar 13 '13 at 19:46
    
I use set-option -g default-command "reattach-to-user-namespace -l zsh", and most of the time end up with a window named zsh, as desired. For unknown reasons, sometimes the name doesn't switch, and the window is called reattach-to-user-namespace. I still haven't noticed a pattern as to when/why this happens, but it seems like there might be a subtle bug, or something in my configuration. –  Jim Stewart Nov 5 '13 at 2:28
add comment

2 Answers

up vote 7 down vote accepted

There is no global default window name that is applied to all new windows; they default to (part of) the first “word” of the command (or the default shell if there is no command). Your windows are probably defaulting to reattach-to-user-namespace because you that is the first interesting bit of your default-command value.

It would be a bit round-about, but you could put your default command in a shell script and point your default-command to that script instead. With that configuration the default window name (for windows created without an explicit command) would be whatever you named the shell script.

Otherwise, there are several ways to manually name/rename a window:

  • At creation time with -n:

    new-window -n 'some name'
    

    You could re-bind c (the default key used to create a window) to incorporate a “default name” of your choosing:

    bind-key c new-window -n 'default name'
    
  • Rename an existing window:

    rename-window 'new name'
    

    There is also a default binding (Prefix ,) that will prompt you for a new name and rename the window.

  • Rename a window via an “escape sequence” sent to a pane’s tty:

    # E.g. in a shell:
    printf '\033kWINDOW_NAME\033\\'
    

Your “prompt me for a name for a new window” can be done like this (prompting before or after creating the window):

bind-key C command-prompt -p "Name of new window: " "new-window -n '%%'"

bind-key C new-window \; command-prompt -p "Name for this new window: " "rename-window '%%'"
share|improve this answer
    
Wow, this is a really epic answer, thanks a lot! :) –  js-coder Mar 14 '13 at 11:15
2  
I found a way to set a default title: set-option -g default-command "tmux rename-window base; reattach-to-user-namespace -l zsh" sets a default title of base. You might want to add this to your answer. :) –  js-coder Mar 24 '13 at 21:07
    
your solution breaks tmux managers like tmuxinator. In that case, the tabs do not get renamed –  SystematicFrank Nov 13 '13 at 10:27
add comment

Tmux picks the first command as the window name.

Say you want "i" to be the default title, you can trick it like this.

set-option -g default-command "i > /dev/null 2>&1; reattach-to-user-namespace -l bash"

This is better than

set-option -g default-command "tmux rename-window i; reattach-to-user-namespace -l bash"

because if you create a pane after you manually set a window title, the title will be renamed back to "i" again.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.