diff --git a/plugins/screen/screen.plugin.zsh b/plugins/screen/screen.plugin.zsh index 7009e7a91..0ca3e211e 100644 --- a/plugins/screen/screen.plugin.zsh +++ b/plugins/screen/screen.plugin.zsh @@ -39,16 +39,28 @@ if [[ "$TERM" == screen* ]]; then # called by zsh before executing a command function preexec() { - local -a cmd; cmd=(${(z)1}) # the command string - eval "tab_title=$TAB_TITLE_PREFIX:$TAB_TITLE_EXEC" - eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX:$TAB_HARDSTATUS_EXEC" + local -a cmd; cmd=(${(z)3}) # the command string + if [ "$TITLE" != "" ] + then + eval "tab_title=$TITLE:$TAB_TITLE_EXEC" + eval "tab_hardstatus=$TITLE:$TAB_HARDSTATUS_EXEC" + else + eval "tab_title=$TAB_TITLE_PREFIX:$TAB_TITLE_EXEC" + eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX:$TAB_HARDSTATUS_EXEC" + fi screen_set $tab_title $tab_hardstatus } # called by zsh before showing the prompt function precmd() { - eval "tab_title=$TAB_TITLE_PREFIX:$TAB_TITLE_PROMPT" - eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX:$TAB_HARDSTATUS_PROMPT" + if [ "$TITLE" != "" ] + then + eval "tab_title=$TITLE:$TAB_TITLE_PROMPT" + eval "tab_hardstatus=$TITLE:$TAB_HARDSTATUS_PROMPT" + else + eval "tab_title=$TAB_TITLE_PREFIX:$TAB_TITLE_PROMPT" + eval "tab_hardstatus=$TAB_HARDSTATUS_PREFIX:$TAB_HARDSTATUS_PROMPT" + fi screen_set $tab_title $tab_hardstatus } -fi \ No newline at end of file +fi