11

I know there are options to start a new terminal with a specified title, and that is is possible to change the title from a terminal using the menu: 'Terminal' -> Set Title.

However, I want to change it for a current terminal from command line. How can I change the title for an existing Gnome terminal from command line?

Sander
  • 332
  • 2
  • 3
  • 11

4 Answers4

14

Output a suitable xterm escape sequence.

echo -ne '\033]0;New title\007'

See also How to change the title of an xterm.

l0b0
  • 7,171
  • 4
  • 33
  • 54
tripleee
  • 3,121
  • 5
  • 32
  • 35
  • Perfect, thats it! :D Also, thanks for the very interesting link. – Sander Mar 13 '12 at 15:26
  • Nice, but is it cross-platform compatible? – l0b0 Mar 20 '12 at 15:00
  • http://ubuntuforums.org/archive/index.php/t-448614.html - there is a discussion regarding other terminals. I don't have many measuring points, but the xterm variete at least works for me in rxvt-unicode as well. – Daniel Andersson Mar 20 '12 at 15:49
  • @l0b0: Across which platforms? Many ssh clients on various platforms offer xterm compatibility, as do most xterm replacements. – tripleee Mar 21 '12 at 05:15
  • 1
    @tripleee: Usually it's recommended to use `tput` commands to print such escape sequences, as mentioned in [this exact duplicate](http://serverfault.com/questions/23978/how-can-one-set-a-terminals-title-with-the-tput-command). – l0b0 Mar 21 '12 at 08:27
  • @l0b0: ack; you are right, of course. – tripleee Mar 21 '12 at 12:28
  • 1
    @triplee Thanks for the input! However I don't consider this question as an exact duplicate of the one you mentioned. The context of the other question is very different. – Sander Feb 13 '13 at 10:02
  • 2
    This no longer seems to work – kapad Jul 29 '13 at 14:19
  • @kapad Where does this no longer work? It works for me, still. – tripleee Nov 11 '15 at 05:24
  • Warning, this will not work if PS1 and/or PROMT_COMMAND variables are set (in bashrc e.g. ) to set the title. In that case, after issuing this command, bash will first execute the contents of PROMT_COMMAND, then redraw the prompt ( = the text with the $-sign) by printing PS1. Both variables have the potential to reset the title. See the link in Zach Pfeffer's answer with more details (it's not only for Ubuntu). – mxt3 Jan 19 '19 at 12:12
  • That's `PROMPT_COMMAND` with a P. Your comment is a bit of a sweeping generalization; but certainly, if something else is rewriting the prompt (regularly or not), it will overwrite whatever you put there. – tripleee Sep 26 '19 at 03:40
1

If you need to set it to the hostname where you are logged into you can use:

echo -ne "\033]0;${HOSTNAME}\007"
0

If you're using Ubuntu 16.04 you may need to clear the PS1 and PROMPT_COMMAND like:

PS1=$
PROMPT_COMMAND=
echo -en "\033]0;New title\a"

I put together a write up on it at link.

0

It might be worth your while to try KDE. It has tabbed terminal windows, and each tab can be named just by right clicking on the tab.

Scott C Wilson
  • 2,376
  • 4
  • 22
  • 31