screen_name_reset=yes
screen_preexec() {
+ # Get the application name excluding any arguments.
+ local program_name=${1%% *}
+
# Ignore often used commands which are only running for a very short
# time. This prevents a "blinking" name when it's changed to "cd" for
# example and then some milliseconds later back to "zsh".
- [[ ${1%% *} == (cd*|ls|la|ll|clear) ]] && return
+ [[ $program_name == (cd*|ls|la|ll|clear) ]] && return
# Set the window name to the currently running program.
- print -n "\ek${1%% *}\e\\"
+ print -n "\ek$program_name\e\\"
# Tell precmd() to reset the window name when the program stops.
screen_name_reset=yes