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.
In addition to Chris' answer on setting the window title using new window -n 'somename'
, you can also provide an empty string ''
as the name of a window. This way, I can use the default shortcut (prefix + c) and do not need to come up with a name for temporary windows, but can still rename them when neccessary:
bind-key c new-window -n ''
Not really an answer more than a hack:
I created a symlink with
sudo ln -s /usr/local/bin/reattach-to-user-namespace /usr/local/bin/pbash
And now it shows as pbash
as the default title.