Can I set a default title for a tmux window?

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 '%%'"

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.

Tags:

Tmux