GNOME Terminal - process name in tab title
Found it. This site provides a good explanation of a solution.
In your bashrc, it would look like:
case "$TERM" in
xterm*|rxvt*)
set -o functrace
trap 'echo -ne "\e]0;$BASH_COMMAND\007"' DEBUG
PS1="\e]0;\s\007$PS1"
;;
*)
;;
esac
Personally, I don't think I would add it to my bashrc, because the DEBUG combined with trace does throw out a load of garbage when all your shell starts. If you can live with that, it actually does work. It does display the entire command, however, not just the first word.
Well, since everyone already seems to know David Pashley's solution I'm kind of surprised it took me so long to find this one because it's almost as old.
This solution actually takes care of bash-completion spamming garbage.
To be clear: I did nothing on my own here but research. All credit goes to Marius Gedminas.
This works perfectly for me with Gnome-Terminal/Terminator
# If this is an xterm set the title to user@host:dir
case "$TERM" in
xterm*|rxvt*)
PROMPT_COMMAND='echo -ne "\033]0;${USER}@${HOSTNAME}: ${PWD}\007"'
# Show the currently running command in the terminal title:
# http://www.davidpashley.com/articles/xterm-titles-with-bash.html
show_command_in_title_bar()
{
case "$BASH_COMMAND" in
*\033]0*)
# The command is trying to set the title bar as well;
# this is most likely the execution of $PROMPT_COMMAND.
# In any case nested escapes confuse the terminal, so don't
# output them.
;;
*)
echo -ne "\033]0;${USER}@${HOSTNAME}: ${BASH_COMMAND}\007"
;;
esac
}
trap show_command_in_title_bar DEBUG
;;
*)
;;
esac
Also this is a cross-post because I just found out about it and wanted to share and I think it's useful here as well.
The below should work. I have the function in a .bash_functions
file, and source it in the .bashrc
file before setting $PROMPT_COMMAND
.
function term_title
{
history 1 | awk '{print $2}';
}
PROMPT_COMMAND='echo -ne "\033]0;"$(term_title)"\007"'