Take the 2-minute tour ×

After switching to using .bashrc instead of .bash_profile (I didn't like how the default terminal worked with one config file and utilities like screen with another), the behavior of iterm2 changed. Before, when I set the tab titles manually, they would remain there unless I ssh'd into another server, at which point the title would change to username@otherservername: /location/in/other/servers/filesystem. Now, when I change the tab titles, they remain so until the first command I execute in that tab. As soon as I run something, the tab title switches to myusername@mymacname: /my/location/in/my/mac/filesystem.

Using the command line argument, echo -ne "\e]1;tab title\a" doesn't help. It does switch (Slow enough to notice the title change on the screen), but when the command exits, the title is back where it used to be: myusername@mymacname: /my/location/in/my/mac/filesystem.

Ideally, I would like the tab titles to NEVER switch automatically, including when I ssh into another server. If that's not possible, I'd like to return to the previous behavior: as long as I'm on the local machine, keep the tab titles I set. Can that be done?

Here's my .bashrc file:

# for examples

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# don't overwrite GNU Midnight Commander's setting of `ignorespace'.
# ... or force ignoredups and ignorespace
export HISTCONTROL=ignoreboth

# append to the history file, don't overwrite it
shopt -s histappend


# update the values of LINES and COLUMNS.
shopt -s checkwinsize


    debian_chroot=$(cat /etc/debian_chroot)

case "$TERM" in
    xterm-color) color_prompt=yes;;


if [ -n "$force_color_prompt" ]; then

if [ "$color_prompt" = yes ]; then
    PS1='${debian_chroot:+($debian_chroot)}\[\033[01;36m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ '
unset color_prompt force_color_prompt

case "$TERM" in

# Alias definitions.

#if [ -f ~/.bash_aliases ]; then
#    . ~/.bash_aliases

# enable color support of ls and also add handy aliases
    eval "`dircolors -b`"
    alias ls='ls --color=auto -hF'
    #alias dir='dir --color=auto'
    #alias vdir='vdir --color=auto'

    #alias grep='grep --color=auto'
    #alias fgrep='fgrep --color=auto'
    #alias egrep='egrep --color=auto'

# some more ls aliases
#alias ll='ls -l'
#alias la='ls -A'
#alias l='ls -CF'

# enable programmable completion features (you don't need to enable
# sources /etc/bash.bashrc).
if [ -f /etc/bash_completion ]; then
    . /etc/bash_completion
source ~/.local/bin/bashmarks.sh

export PATH=/usr/local/bin:/usr/local/sbin:/opt/local/bin:/opt/local/sbin:$HOME/bin:$PATH
export MANPATH=/opt/local/man:$MANPATH
export CLICOLOR=1
export LSCOLORS=ExFxCxDxBxegedabagacad
share|improve this question

3 Answers 3

Make sure $PROMPT_COMMAND is not set by running


If the output is non-empty, that script is executed just before a prompt is displayed by the shell.

On OS X Lion, the default value is update_terminal_cwd, and it looks like this:

$ type update_terminal_cwd
update_terminal_cwd is a function
update_terminal_cwd () 
    local SEARCH=' ';
    local REPLACE='%20';
    local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}";
    printf '\e]7;%s\a' "$PWD_URL"

It is used to add the current working directory to Terminal's title bar.

share|improve this answer
up vote 1 down vote accepted

Found (partially) an answer. If this portion is commented out:

case "$TERM" in


#case "$TERM" in
#    ;;
#    ;;

The tab titles are preserved as long as you're on the local machine. The server still changes them.

share|improve this answer
Look into the remote machine's default PS1: Enter echo $PS1 on the command line to view it, enter PS1='\$' to set it to a minimal value for testing whether that setting is responsible for changing your window title. –  Daniel Beck Nov 10 '11 at 20:34

To prevent hosts you ssh into from changing the title, usually doing

export TERM=vt100

before you ssh does the trick, because the default initialization files (bashrc etc) look at the terminal variable and only change the title if the terminal is xterm (which nowadays is the de facto standard).

Note: with this trick you lose at least "alternate screen", colors and maybe other kinds of fancy terminal features you may or may not appreciate.

share|improve this answer

Your Answer


