###--------------------------------------------------------------------------
### Prompt machinery.
-__mdw_set_prompt_hacks () { host=$(hostname); dir=""; }
+__mdw_host=$(hostname)
+__mdw_set_prompt_hacks () { host=$__mdw_host; dir=""; }
__mdw_set_prompt_pieces () {
local hqual
esac
}
-__mdw_screen_precmd () { printf "\ek%s\e\\" "$__mdw_shell"; }
-__mdw_screen_preexec () { printf "\ek%s\e\\" "$1"; }
+__mdw_xterm_precmd () { printf >/dev/tty "\e]2;%s@%s:%s – %s\e\\" "$USER" "$__mdw_host" "$PWD" "$__mdw_shell"; }
+__mdw_xterm_preexec () { printf >/dev/tty "\e]2;%s@%s:%s – %s\e\\" "$USER" "$__mdw_host" "$PWD" "$1"; }
+
+__mdw_screen_precmd () { printf >/dev/tty "\ek%s\e\\" "$__mdw_shell"; }
+__mdw_screen_preexec () { printf >/dev/tty "\ek%s\e\\" "$1"; }
if [ -t 0 ]; then
- case ${STY+t},${__mdw_precmd_hook+t},${__mdw_preexec_hook+t} in
- t,t,t)
+ case ${STY+t},${__mdw_precmd_hook+t},${__mdw_preexec_hook+t},${TERM} in
+ ,t,t,xterm*)
+ __mdw_addhook __mdw_precmd_hook __mdw_xterm_precmd
+ __mdw_addhook __mdw_preexec_hook __mdw_xterm_preexec
+ ;;
+ t,t,t,*)
__mdw_addhook __mdw_precmd_hook __mdw_screen_precmd
__mdw_addhook __mdw_preexec_hook __mdw_screen_preexec
;;