Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I've seen various posts about launching gnome-terminal with multiple tabs and the script below is working for me. That is to say, this script will launch gnome-terminal with various working directories or profiles. . .

#!/bin/sh
gnome-terminal \
--tab --working-directory=$HOME/notes  \
--tab --working-directory=$HOME/puppet \
--tab --profile=root-beamish           \
--tab --profile=odyssey                \
--tab --profile=root

... but I'd like to set a unique title for each tab.

In the case where a tab has its own profile I can change the title from within gnome-terminal with Edit | Profiles | (NAME) | Edit | Title and Command and then change "Initial Title" to what I want and "When terminal commands set their own titles" from "Replace initial title" to "Keep initial title". However, I'd rather not create a unique profile for every tab. I'd like a generic solution.

I've tried adding --title='MyTitle' but it doesn't seem to help. I'm using GNOME 2.28.2 on CentOS 6.

share|improve this question
    
An old question, but I've just solved it on Ubuntu and would like to share my solution. I've written a script which sets a title based on the cwd. Since gnome-terminal now supports per-tab working directories, this script can be wired straight into your ~/.bashrc. –  halfer Apr 13 at 11:19
add comment

2 Answers

Use the -t option. (see gnome-terminal --help-terminal-options)

gnome-terminal \
--tab -t "notes" --working-directory=$HOME/notes  \
--tab -t "puppet" --working-directory=$HOME/puppet \
--tab -t "beamish" --profile=root-beamish           \
--tab -t "odyssey" --profile=odyssey                \
--tab -t "root" --profile=root

-------- updated at 2011-11-15 22:00:00 --------

So... that worked for me on Solaris 11 Express, with gnome-terminal 2.30.2.

Since then, I've been able to test it on Ubuntu 11.04 (Natty), which uses 2.32.1, and found exactly the same behavior as you.

In the case of Ubuntu, I was able to track it to the ubuntu .bashrc file. In particular, the section that looks like:

# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
    PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"
    ;;
*)
    ;;
esac

In this case, the PS1 variable is being expanded for terminal types matching xterm* and rxvt*.

PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1"

specifically the part between PS1="\[\e]0; and \a\]. Those get turned into the window title.

Once I commented out that whole case statement, the behavior of gnome-terminal with the -t option worked as expected. I'll see if I can find a CentOS 6 box to test this with, too.

share|improve this answer
    
Thanks but -t is equivalent to --title which doesn't work for me, as I mentioned in my original post. –  Philip Durbin Nov 16 '11 at 18:23
    
do you by any chance have a customized, or complex, PS1 to set up your shell prompt? If so, can you try unsetting your PS1, and re-run your script? –  Tim Kennedy Nov 16 '11 at 18:40
    
Unfortunately, that doesn't help either. What Linux distribution are you using, Tim? –  Philip Durbin Nov 17 '11 at 1:01
    
Actually, I was testing on Solaris 11 Express, which uses gnome-terminal 2.30.2. I've just tried it with ubuntu and found exactly the same behavior you have. I'll update the answer with what I found. –  Tim Kennedy Nov 17 '11 at 2:51
add comment

When I did a

$ gnome-terminal -t "MyTitle"

The new terminal had "MyTitle" as the title for a moment and immediately was replaced by the default title.

I went to

Edit | Profiles | (Default) | Edit | Title and Command

And changed "When terminal command set their own titles:" to "Keep initial title", the above command launched a terminal with "MyTitle" as the title.

Hope this helps.

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.