comparison .shell.d/99.prompt.zsh @ 382:491cd0cedeee

prompt: use async.zsh to avoid weird disowned process jank
author Augie Fackler <raf@durin42.com>
date Thu, 10 Mar 2016 19:12:23 -0500
parents 0ceb8554801e
children 2dd040318107
comparison
equal deleted inserted replaced
381:e84b6da69ea0 382:491cd0cedeee
19 } 19 }
20 20
21 PROMPT_TMP="${HOME}/.augie-zsh-tmp-prompt" 21 PROMPT_TMP="${HOME}/.augie-zsh-tmp-prompt"
22 22
23 function right_side_prompt() { 23 function right_side_prompt() {
24 cd $1
24 branch=`vcs_current_branch` 25 branch=`vcs_current_branch`
25 if [ $? = 0 ] ; then 26 if [ $? = 0 ] ; then
26 echo -n $branch > "$PROMPT_TMP" 27 print $branch
27 kill -s USR1 $$
28 fi 28 fi
29 } 29 }
30 30
31 function TRAPUSR1() { 31 function right_prompt_results() {
32 rps_branch=$(cat "$PROMPT_TMP") 32 if [ $2 = 0 ] ; then
33 zle && zle reset-prompt 33 rps_branch=$3
34 } 34 zle && zle reset-prompt
35 35 fi
36 function precmd () {
37 rps_branch="$(date '+%D %H:%M')"
38 right_side_prompt &!
39 } 36 }
40 37
41 if [ "x`whoami`" = "xroot" ] ; then 38 if [ "x`whoami`" = "xroot" ] ; then
42 PS1=$'%{\e];%n@%m: %2~ [zsh]\a%}[%m:%3~] %{\e[31m%}%n%{\e[0m%}%# ' 39 PS1=$'%{\e];%n@%m: %2~ [zsh]\a%}[%m:%3~] %{\e[31m%}%n%{\e[0m%}%# '
43 if [[ "$TERM" == "screen" ]] ; then 40 if [[ "$TERM" == "screen" ]] ; then
70 # for tramp to not hang, need the following. cf: 67 # for tramp to not hang, need the following. cf:
71 # http://www.emacswiki.org/emacs/TrampMode 68 # http://www.emacswiki.org/emacs/TrampMode
72 unsetopt zle 69 unsetopt zle
73 unsetopt prompt_cr 70 unsetopt prompt_cr
74 unsetopt prompt_subst 71 unsetopt prompt_subst
75 unfunction precmd
76 unfunction preexec 72 unfunction preexec
73 else
74 autoload -Uz async && async
75 async_start_worker durin42_prompt -u -n
76 async_register_callback durin42_prompt right_prompt_results
77
78 function precmd () {
79 rps_branch="$(date '+%D %H:%M')"
80 async_job durin42_prompt right_side_prompt $PWD
81 }
77 fi 82 fi
78 83
79 84
80 #nonfancy no-frills prompt - disabled (same as the "non-fancy" one above) 85 #nonfancy no-frills prompt - disabled (same as the "non-fancy" one above)
81 #prompt='[%m:%3~] %n%# ' 86 #prompt='[%m:%3~] %n%# '