function set_title () { printf '%s%s%s' $'\e]0;' "$@" $'\a' } case $TERM in (xterm*|rxvt*) precmd () { set_title ${(%):-"%n@%m: %~"} } preexec () { set_title "${(%):-"%n@%m: "}" "$1" } ;; esac