From: Simon Ruderich Date: Mon, 23 Feb 2009 17:15:04 +0000 (-0600) Subject: Use running program name for xterm's window name. X-Git-Url: https://ruderich.org/simon/gitweb/?a=commitdiff_plain;h=38c89a51b82d272fbcdd440bfe646b305c7982ed;p=config%2Fdotfiles.git Use running program name for xterm's window name. In the past it was only used with screen. --- diff --git a/zsh/rc b/zsh/rc index aa64848..ae35dcc 100644 --- a/zsh/rc +++ b/zsh/rc @@ -123,17 +123,17 @@ if [[ $ZSH_VERSION == (4.3.<9->|4.<4->*|<5->*) ]]; then 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 @@ -166,26 +166,34 @@ if [[ $TERM == screen ]]; then 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