diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/functions.zsh | 23 | ||||
| -rw-r--r-- | lib/git.zsh | 4 | ||||
| -rw-r--r-- | lib/termsupport.zsh | 47 | ||||
| -rw-r--r-- | lib/theme-and-appearance.zsh (renamed from lib/appearance.zsh) | 0 | 
4 files changed, 30 insertions, 44 deletions
diff --git a/lib/functions.zsh b/lib/functions.zsh index 914f2ef25..6f5d015f7 100644 --- a/lib/functions.zsh +++ b/lib/functions.zsh @@ -1,26 +1,3 @@ -## fixme, i duplicated this in xterms - oops -function title { -  if [[ $TERM == "screen" ]]; then -    # Use these two for GNU Screen: -    print -nR $'\033k'$1$'\033'\\\ - -    print -nR $'\033]0;'$2$'\a' -  elif [[ ($TERM =~ "^xterm") ]] || [[ ($TERM == "rxvt") ]]; then -    # Use this one instead for XTerms: -    print -nR $'\033]0;'$*$'\a' -  fi -} - -function precmd { -  title zsh "$PWD" -} - -function preexec { -  emulate -L zsh -  local -a cmd; cmd=(${(z)1}) -  title $cmd[1]:t "$cmd[2,-1]" -} -  function zsh_stats() {    history | awk '{print $2}' | sort | uniq -c | sort -rn | head  } diff --git a/lib/git.zsh b/lib/git.zsh index 75fdc1f9c..8512de8a4 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -26,6 +26,10 @@ git_prompt_status() {    fi    if $(echo "$INDEX" | grep '^ M ' &> /dev/null); then      STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS" +  elif $(echo "$INDEX" | grep '^AM ' &> /dev/null); then +    STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS" +  elif $(echo "$INDEX" | grep '^ T ' &> /dev/null); then +    STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"    fi    if $(echo "$INDEX" | grep '^R  ' &> /dev/null); then      STATUS="$ZSH_THEME_GIT_PROMPT_RENAMED$STATUS" diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index fef978748..e1e536690 100644 --- a/lib/termsupport.zsh +++ b/lib/termsupport.zsh @@ -1,21 +1,26 @@ -case "$TERM" in -  xterm*|rxvt*) -    preexec () { -      print -Pn "\e]0;%n@%m: $1\a"  # xterm -    } -    precmd () { -      print -Pn "\e]0;%n@%m: %~\a"  # xterm -    } -    ;; -  screen*) -    preexec () { -      local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} -      echo -ne "\ek$CMD\e\\" -      print -Pn "\e]0;%n@%m: $1\a"  # xterm -    } -    precmd () { -      echo -ne "\ekzsh\e\\" -      print -Pn "\e]0;%n@%m: %~\a"  # xterm -    } -    ;; -esac
\ No newline at end of file +#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 [[ "$TERM" == "screen" ]]; then  +    print -Pn "\ek$1\e\\" #set screen hardstatus, usually truncated at 20 chars +  elif [[ ($TERM =~ "^xterm") ]] || [[ ($TERM == "rxvt") ]] || [[ "$TERM_PROGRAM" == "iTerm.app" ]]; then +    print -Pn "\e]2;$2\a" #set window name +    print -Pn "\e]1;$1\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 precmd { +  title $ZSH_THEME_TERM_TAB_TITLE_IDLE $ZSH_THEME_TERM_TITLE_IDLE +} + +#Appears at the beginning of (and during) of command execution +function preexec { +  local CMD=${1[(wr)^(*=*|sudo|ssh|-*)]} #cmd name only, or if this is sudo or ssh, the next cmd +  title "$CMD" "%100>...>$2%<<" +} diff --git a/lib/appearance.zsh b/lib/theme-and-appearance.zsh index aec67721a..aec67721a 100644 --- a/lib/appearance.zsh +++ b/lib/theme-and-appearance.zsh  | 
