From 153355965a36f946106d15cde6fc375e87ed72c4 Mon Sep 17 00:00:00 2001 From: Samir Benmendil Date: Tue, 9 Dec 2014 18:55:14 +0000 Subject: [PATCH] zsh: fix setting window title --- zsh/lib/termsupport.zsh | 35 ----------------------------------- zsh/lib/title.zsh | 16 ++++++++++++++++ 2 files changed, 16 insertions(+), 35 deletions(-) delete mode 100644 zsh/lib/termsupport.zsh create mode 100644 zsh/lib/title.zsh diff --git a/zsh/lib/termsupport.zsh b/zsh/lib/termsupport.zsh deleted file mode 100644 index c056989..0000000 --- a/zsh/lib/termsupport.zsh +++ /dev/null @@ -1,35 +0,0 @@ -#usage: title short_tab_title looooooooooooooooooooooggggggg_windows_title -#http://www.faqs.org/docs/Linux-mini/Xterm-Title.html#ss3.1 -#Fully support screen, iterm, and probably most modern xterm and rxvt -#Limited support for Apple Terminal (Terminal can't set window or tab separately) -function title { - if [[ "$DISABLE_AUTO_TITLE" == "true" ]] || [[ "$EMACS" == *term* ]]; then - return - fi - if [[ "$TERM" == screen* ]]; then - print -Pn "\ek$1:q\e\\" #set screen hardstatus, usually truncated at 20 chars - elif [[ "$TERM" == xterm* ]] || [[ $TERM == rxvt* ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then - print -Pn "\e]2;$2:q\a" #set window name - print -Pn "\e]1;$1:q\a" #set icon (=tab) name (will override window name on broken terminal) - fi -} - -ZSH_THEME_TERM_TAB_TITLE_IDLE="%15<..<%~%<<" #15 char left truncated PWD -ZSH_THEME_TERM_TITLE_IDLE="%n@%m: %~" - -#Appears when you have the prompt -function omz_termsupport_precmd { - title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE -} - -#Appears at the beginning of (and during) of command execution -function omz_termsupport_preexec { - emulate -L zsh - setopt extended_glob - local CMD=${1[(wr)^(*=*|sudo|ssh|rake|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd - title "$CMD" "%100>...>${2:gs/%/%%}%<<" -} - -autoload -U add-zsh-hook -add-zsh-hook precmd omz_termsupport_precmd -add-zsh-hook preexec omz_termsupport_preexec diff --git a/zsh/lib/title.zsh b/zsh/lib/title.zsh new file mode 100644 index 0000000..09c5947 --- /dev/null +++ b/zsh/lib/title.zsh @@ -0,0 +1,16 @@ +function title { + local tmp + tmp=(${(f)*}) + printf "\e]0;%s\a" "${tmp[1]}" +} + +case "$TERM" in + (*xterm*|rxvt*) + function title_precmd { title "${(%):-[%n@%m] %~}" } + function title_preexec { title "$1" } + ;; +esac + +autoload -U add-zsh-hook +add-zsh-hook precmd title_precmd +add-zsh-hook preexec title_preexec -- 2.48.1