RPROMPT='${vcs_info_msg_0_}'
fi
-# When screen is used set the name of the window to the currently running
-# program.
+# When screen or xterm is used set the name of the window to the currently
+# running program.
#
# When a program is started preexec() sets the window's name to it; when it
# stops precmd() resets the windows' name to 'zsh'.
-if [[ $TERM == screen ]]; then
+if [[ $TERM == screen || $TERM == xterm* ]]; then
# Set to a non empty value to reset the window name in the next precmd()
# call.
- screen_name_reset=yes
+ window_reset=yes
- screen_preexec() {
+ window_preexec() {
# Get the program name with its arguments.
local program_name=$1
# When sudo is used use real program name instead, but with an
esac
# Set the window name to the currently running program.
- print -n "\ek$program_name\e\\"
+ if [[ $TERM == screen ]]; then
+ print -n "\ek$program_name\e\\"
+ elif [[ $TERM == xterm* ]]; then
+ print -n "\e]2;$program_name\e\\"
+ fi
# Tell precmd() to reset the window name when the program stops.
- screen_name_reset=yes
+ window_reset=yes
}
- screen_precmd() {
+ window_precmd() {
# Abort if no window name reset is necessary.
- [[ -z $screen_name_reset ]] && return
+ [[ -z $window_reset ]] && return
# Reset the window name to 'zsh'.
- print -n "\ekzsh\e\\"
+ if [[ $TERM == screen ]]; then
+ print -n "\ekzsh\e\\"
+ elif [[ $TERM == xterm* ]]; then
+ print -n "\e]2;zsh\e\\"
+ fi
# Just reset the name, so no screen reset necessary for the moment.
- screen_name_reset=
+ window_reset=
}
# Add the preexec() and precmd() hooks.
- add-zsh-hook preexec screen_preexec
- add-zsh-hook precmd screen_precmd
+ add-zsh-hook preexec window_preexec
+ add-zsh-hook precmd window_precmd
fi