Mercurial > dotfiles
annotate .shell.d/99.prompt.zsh @ 419:ced3c6a3e02a
make-greek-tree: update reference to the upstream ASCII art diagram
author | Augie Fackler <raf@durin42.com> |
---|---|
date | Sat, 08 Oct 2016 10:49:00 -0400 |
parents | 2dd040318107 |
children | 7e8603e0a822 |
rev | line source |
---|---|
0 | 1 # Magic prompt with colors |
2 # username in blue if not root | |
3 # username in red if root - time in pink w/ | |
4 # DANGER replacing the date | |
5 # failed jobs print exit status in the RPS1 with yellow text | |
6 setopt prompt_subst | |
7 | |
8 preexec () { | |
179 | 9 currJob="`echo $3 | cut -d ' ' -f 1 | head -n 1`" |
10 if [[ "$TERM" == "screen" ]]; then | |
11 hostUser="%10<...<%~%<<" | |
12 print -Pn "\ek[$hostUser $currJob]\e\\" | |
13 else | |
14 if [[ "$FANCYTYPE" == "YES" ]]; then | |
15 hostUser="%n@%m: %2~" | |
16 print -Pn "\e]0;$hostUser [$currJob]\a" | |
17 fi | |
18 fi | |
0 | 19 } |
20 | |
380
0ceb8554801e
zsh: make vcs info in prompt async
Augie Fackler <raf@durin42.com>
parents:
272
diff
changeset
|
21 PROMPT_TMP="${HOME}/.augie-zsh-tmp-prompt" |
0ceb8554801e
zsh: make vcs info in prompt async
Augie Fackler <raf@durin42.com>
parents:
272
diff
changeset
|
22 |
0 | 23 function right_side_prompt() { |
382
491cd0cedeee
prompt: use async.zsh to avoid weird disowned process jank
Augie Fackler <raf@durin42.com>
parents:
380
diff
changeset
|
24 cd $1 |
0 | 25 branch=`vcs_current_branch` |
26 if [ $? = 0 ] ; then | |
382
491cd0cedeee
prompt: use async.zsh to avoid weird disowned process jank
Augie Fackler <raf@durin42.com>
parents:
380
diff
changeset
|
27 print $branch |
0 | 28 fi |
29 } | |
30 | |
382
491cd0cedeee
prompt: use async.zsh to avoid weird disowned process jank
Augie Fackler <raf@durin42.com>
parents:
380
diff
changeset
|
31 function right_prompt_results() { |
491cd0cedeee
prompt: use async.zsh to avoid weird disowned process jank
Augie Fackler <raf@durin42.com>
parents:
380
diff
changeset
|
32 if [ $2 = 0 ] ; then |
491cd0cedeee
prompt: use async.zsh to avoid weird disowned process jank
Augie Fackler <raf@durin42.com>
parents:
380
diff
changeset
|
33 rps_branch=$3 |
491cd0cedeee
prompt: use async.zsh to avoid weird disowned process jank
Augie Fackler <raf@durin42.com>
parents:
380
diff
changeset
|
34 zle && zle reset-prompt |
491cd0cedeee
prompt: use async.zsh to avoid weird disowned process jank
Augie Fackler <raf@durin42.com>
parents:
380
diff
changeset
|
35 fi |
0 | 36 } |
37 | |
38 if [ "x`whoami`" = "xroot" ] ; then | |
179 | 39 PS1=$'%{\e];%n@%m: %2~ [zsh]\a%}[%m:%3~] %{\e[31m%}%n%{\e[0m%}%# ' |
40 if [[ "$TERM" == "screen" ]] ; then | |
41 PS1=$'%{\ek[%2~ zsh]\e\\%}[%m:%3~] %{\e[31m%}%n%{\e[0m%}%# ' | |
42 fi | |
43 RPS1=$'%{\e[1;35m%}[DANGER %t]%{\e[0m%}%(?..%{\e[1;33m%} %?%{\e[1;0m%})' | |
0 | 44 else |
179 | 45 PS1=$'%{\e];%n@%m: %2~ [zsh]\a%}[%m:%3~] %{\e[34m%}%n%{\e[0m%}%# ' |
46 if [[ "$TERM" == "screen" ]]; then | |
47 PS1=$'%{\ek[%2~ zsh]\e\\%}[%m:%3~] %{\e[34m%}%n%{\e[0m%}%# ' | |
48 fi | |
0 | 49 RPS1=$'[$rps_branch]%(?..%{\e[1;33m%} %?%{\e[0m%})' |
50 fi | |
51 | |
178
da329720ff18
zsh prompt: add urxvt to whitelisted terms, use a loop instead of many ifs
Augie Fackler <durin42@gmail.com>
parents:
39
diff
changeset
|
52 |
da329720ff18
zsh prompt: add urxvt to whitelisted terms, use a loop instead of many ifs
Augie Fackler <durin42@gmail.com>
parents:
39
diff
changeset
|
53 export FANCYTYPE="NO" |
da329720ff18
zsh prompt: add urxvt to whitelisted terms, use a loop instead of many ifs
Augie Fackler <durin42@gmail.com>
parents:
39
diff
changeset
|
54 |
272
02b635053e8f
zsh prompt: allow fancy prompt mode on xterm-256color as well
Augie Fackler <durin42@gmail.com>
parents:
182
diff
changeset
|
55 for ok in rxvt rxvt-unicode xterm xterm-256color xterm-color screen ; do |
178
da329720ff18
zsh prompt: add urxvt to whitelisted terms, use a loop instead of many ifs
Augie Fackler <durin42@gmail.com>
parents:
39
diff
changeset
|
56 if [ "$TERM" = "$ok" ] ; then |
da329720ff18
zsh prompt: add urxvt to whitelisted terms, use a loop instead of many ifs
Augie Fackler <durin42@gmail.com>
parents:
39
diff
changeset
|
57 export FANCYTYPE="YES" |
da329720ff18
zsh prompt: add urxvt to whitelisted terms, use a loop instead of many ifs
Augie Fackler <durin42@gmail.com>
parents:
39
diff
changeset
|
58 fi |
da329720ff18
zsh prompt: add urxvt to whitelisted terms, use a loop instead of many ifs
Augie Fackler <durin42@gmail.com>
parents:
39
diff
changeset
|
59 done |
da329720ff18
zsh prompt: add urxvt to whitelisted terms, use a loop instead of many ifs
Augie Fackler <durin42@gmail.com>
parents:
39
diff
changeset
|
60 |
da329720ff18
zsh prompt: add urxvt to whitelisted terms, use a loop instead of many ifs
Augie Fackler <durin42@gmail.com>
parents:
39
diff
changeset
|
61 if [ $FANCYTYPE = "NO" ] ; then |
da329720ff18
zsh prompt: add urxvt to whitelisted terms, use a loop instead of many ifs
Augie Fackler <durin42@gmail.com>
parents:
39
diff
changeset
|
62 prompt='[%m:%3~] %n%# ' |
da329720ff18
zsh prompt: add urxvt to whitelisted terms, use a loop instead of many ifs
Augie Fackler <durin42@gmail.com>
parents:
39
diff
changeset
|
63 RPS1=$'[%W %t]' |
0 | 64 fi |
65 | |
182
e189dfb33bfa
zsh prompt: unset basically everything if in tramp
Augie Fackler <durin42@gmail.com>
parents:
179
diff
changeset
|
66 if [[ $TERM == "dumb" ]]; then # in emacs |
e189dfb33bfa
zsh prompt: unset basically everything if in tramp
Augie Fackler <durin42@gmail.com>
parents:
179
diff
changeset
|
67 # for tramp to not hang, need the following. cf: |
e189dfb33bfa
zsh prompt: unset basically everything if in tramp
Augie Fackler <durin42@gmail.com>
parents:
179
diff
changeset
|
68 # http://www.emacswiki.org/emacs/TrampMode |
e189dfb33bfa
zsh prompt: unset basically everything if in tramp
Augie Fackler <durin42@gmail.com>
parents:
179
diff
changeset
|
69 unsetopt zle |
e189dfb33bfa
zsh prompt: unset basically everything if in tramp
Augie Fackler <durin42@gmail.com>
parents:
179
diff
changeset
|
70 unsetopt prompt_cr |
e189dfb33bfa
zsh prompt: unset basically everything if in tramp
Augie Fackler <durin42@gmail.com>
parents:
179
diff
changeset
|
71 unsetopt prompt_subst |
e189dfb33bfa
zsh prompt: unset basically everything if in tramp
Augie Fackler <durin42@gmail.com>
parents:
179
diff
changeset
|
72 unfunction preexec |
389
2dd040318107
prompt: simplify prompt more when tramp is probably in use
Augie Fackler <raf@durin42.com>
parents:
382
diff
changeset
|
73 PS1='$ ' |
2dd040318107
prompt: simplify prompt more when tramp is probably in use
Augie Fackler <raf@durin42.com>
parents:
382
diff
changeset
|
74 RPS1='' |
382
491cd0cedeee
prompt: use async.zsh to avoid weird disowned process jank
Augie Fackler <raf@durin42.com>
parents:
380
diff
changeset
|
75 else |
491cd0cedeee
prompt: use async.zsh to avoid weird disowned process jank
Augie Fackler <raf@durin42.com>
parents:
380
diff
changeset
|
76 autoload -Uz async && async |
491cd0cedeee
prompt: use async.zsh to avoid weird disowned process jank
Augie Fackler <raf@durin42.com>
parents:
380
diff
changeset
|
77 async_start_worker durin42_prompt -u -n |
491cd0cedeee
prompt: use async.zsh to avoid weird disowned process jank
Augie Fackler <raf@durin42.com>
parents:
380
diff
changeset
|
78 async_register_callback durin42_prompt right_prompt_results |
491cd0cedeee
prompt: use async.zsh to avoid weird disowned process jank
Augie Fackler <raf@durin42.com>
parents:
380
diff
changeset
|
79 |
491cd0cedeee
prompt: use async.zsh to avoid weird disowned process jank
Augie Fackler <raf@durin42.com>
parents:
380
diff
changeset
|
80 function precmd () { |
491cd0cedeee
prompt: use async.zsh to avoid weird disowned process jank
Augie Fackler <raf@durin42.com>
parents:
380
diff
changeset
|
81 rps_branch="$(date '+%D %H:%M')" |
491cd0cedeee
prompt: use async.zsh to avoid weird disowned process jank
Augie Fackler <raf@durin42.com>
parents:
380
diff
changeset
|
82 async_job durin42_prompt right_side_prompt $PWD |
491cd0cedeee
prompt: use async.zsh to avoid weird disowned process jank
Augie Fackler <raf@durin42.com>
parents:
380
diff
changeset
|
83 } |
182
e189dfb33bfa
zsh prompt: unset basically everything if in tramp
Augie Fackler <durin42@gmail.com>
parents:
179
diff
changeset
|
84 fi |
e189dfb33bfa
zsh prompt: unset basically everything if in tramp
Augie Fackler <durin42@gmail.com>
parents:
179
diff
changeset
|
85 |
e189dfb33bfa
zsh prompt: unset basically everything if in tramp
Augie Fackler <durin42@gmail.com>
parents:
179
diff
changeset
|
86 |
0 | 87 #nonfancy no-frills prompt - disabled (same as the "non-fancy" one above) |
88 #prompt='[%m:%3~] %n%# ' | |
89 #RPS1=$'[%W %t]' |