From efda505417faf92c41870c90bdeb1dbbb21b6199 Mon Sep 17 00:00:00 2001 From: Markus Pargmann Date: Thu, 13 Dec 2012 20:18:50 +0100 Subject: [PATCH] screen: Bugfix extracted cmd, add customizable TITLE var Bugfix: zsh doc: "If the history mechanism is active, the string that the user typed is passed as the first argument, otherwise it is an empty string." The title of a screen window should not depend on the history. So this patch uses the third passed argument ("the third argument contains the full text that is being executed."). TITLE variable: This combines automatic title set with customizable titles. It's often useful in a screen session to set a manual title. By using TITLE=YOUR_TITLE, it will replace the generated prefix but still display the executed command. "TITLE=" will cause the screen plugin to generate the title prefix again. Signed-off-by: Markus Pargmann --- plugins/screen/screen.plugin.zsh | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) 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