esac
# Set the window name to the currently running program.
- if [[ $TERM == screen ]]; then
- print -n "\ek$program_name\e\\"
- elif [[ $TERM == xterm* ]]; then
- print -n "\e]2;$program_name\e\\"
- fi
+ window_title "$program_name"
# Tell precmd() to reset the window name when the program stops.
window_reset=yes
[[ -z $window_reset ]] && return
# Reset the window name to 'zsh'.
- if [[ $TERM == screen ]]; then
- print -n "\ekzsh\e\\"
- elif [[ $TERM == xterm* ]]; then
- print -n "\e]2;zsh\e\\"
- fi
+ window_title "zsh"
# Just reset the name, so no screen reset necessary for the moment.
window_reset=
}
+ # Sets the window title. Works with screen and xterm.
+ window_title() {
+ if [[ $TERM == screen ]]; then
+ print -n "\ek$1\e\\"
+ elif [[ $TERM == xterm* ]]; then
+ print -n "\e]2;$1\e\\"
+ fi
+ }
+
# Add the preexec() and precmd() hooks.
add-zsh-hook preexec window_preexec
add-zsh-hook precmd window_precmd