c80392475f4be458fd0df58d85c87ab2a024da00
- Author
- Robby Russell <robby@planetargon.com>
- Committer
- Robby Russell <robby@planetargon.com>
- Date
Message
Merge pull request #415 from eproxus/master
New theme: sunrise
Diff
1diff --git a/themes/sunrise.zsh-theme b/themes/sunrise.zsh-theme
2new file mode 100644
3index 0000000000000000000000000000000000000000..88b371d792f4d1620e03bf80b0e9fa7654ab9c06
4--- /dev/null
5+++ b/themes/sunrise.zsh-theme
6@@ -0,0 +1,96 @@
7+#-------------------------------------------------------------------------------
8+# Sunrise theme for oh-my-zsh by Adam Lindberg (eproxus@gmail.com)
9+# Intended to be used with Solarized: http://ethanschoonover.com/solarized
10+# (Needs Git plugin for current_branch method)
11+#-------------------------------------------------------------------------------
12+
13+# Color shortcuts
14+R=$fg[red]
15+G=$fg[green]
16+M=$fg[magenta]
17+RB=$fg_bold[red]
18+YB=$fg_bold[yellow]
19+BB=$fg_bold[blue]
20+RESET=$reset_color
21+
22+if [ "$(whoami)" = "root" ]; then
23+ PROMPTCOLOR="%{$RB%}" PREFIX="-!-";
24+else
25+ PROMPTCOLOR="" PREFIX="---";
26+fi
27+
28+local return_code="%(?..%{$R%}%? ↵%{$RESET%})"
29+
30+# Get the status of the working tree (copied and modified from git.zsh)
31+custom_git_prompt_status() {
32+ INDEX=$(git status --porcelain 2> /dev/null)
33+ STATUS=""
34+ # Non-staged
35+ if $(echo "$INDEX" | grep '^?? ' &> /dev/null); then
36+ STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS"
37+ fi
38+ if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then
39+ STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS"
40+ fi
41+ if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then
42+ STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS"
43+ fi
44+ if $(echo "$INDEX" | grep '^.M ' &> /dev/null); then
45+ STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
46+ elif $(echo "$INDEX" | grep '^AM ' &> /dev/null); then
47+ STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
48+ elif $(echo "$INDEX" | grep '^ T ' &> /dev/null); then
49+ STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS"
50+ fi
51+ # Staged
52+ if $(echo "$INDEX" | grep '^D ' &> /dev/null); then
53+ STATUS="$ZSH_THEME_GIT_PROMPT_STAGED_DELETED$STATUS"
54+ fi
55+ if $(echo "$INDEX" | grep '^R' &> /dev/null); then
56+ STATUS="$ZSH_THEME_GIT_PROMPT_STAGED_RENAMED$STATUS"
57+ fi
58+ if $(echo "$INDEX" | grep '^M' &> /dev/null); then
59+ STATUS="$ZSH_THEME_GIT_PROMPT_STAGED_MODIFIED$STATUS"
60+ fi
61+ if $(echo "$INDEX" | grep '^A' &> /dev/null); then
62+ STATUS="$ZSH_THEME_GIT_PROMPT_STAGED_ADDED$STATUS"
63+ fi
64+
65+ if $(echo -n "$STATUS" | grep '.*' &> /dev/null); then
66+ STATUS="$ZSH_THEME_GIT_STATUS_PREFIX$STATUS"
67+ fi
68+
69+ echo $STATUS
70+}
71+
72+# get the name of the branch we are on (copied and modified from git.zsh)
73+function custom_git_prompt() {
74+ ref=$(git symbolic-ref HEAD 2> /dev/null) || return
75+ echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(parse_git_dirty)$(git_prompt_ahead)$(custom_git_prompt_status)$ZSH_THEME_GIT_PROMPT_SUFFIX"
76+}
77+
78+# %B sets bold text
79+PROMPT='%B$PREFIX %2~ $(custom_git_prompt)%{$M%}%B»%b%{$RESET%} '
80+RPS1="${return_code}"
81+
82+ZSH_THEME_GIT_PROMPT_PREFIX="%{$YB%}‹"
83+ZSH_THEME_GIT_PROMPT_SUFFIX="%{$YB%}›%{$RESET%} "
84+
85+ZSH_THEME_GIT_PROMPT_DIRTY="%{$R%}*"
86+ZSH_THEME_GIT_PROMPT_CLEAN=""
87+
88+ZSH_THEME_GIT_PROMPT_AHEAD="%{$BB%}➔"
89+
90+ZSH_THEME_GIT_STATUS_PREFIX=" "
91+
92+# Staged
93+ZSH_THEME_GIT_PROMPT_STAGED_ADDED="%{$G%}A"
94+ZSH_THEME_GIT_PROMPT_STAGED_MODIFIED="%{$G%}M"
95+ZSH_THEME_GIT_PROMPT_STAGED_RENAMED="%{$G%}R"
96+ZSH_THEME_GIT_PROMPT_STAGED_DELETED="%{$G%}D"
97+
98+# Not-staged
99+ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$R%}⁇"
100+ZSH_THEME_GIT_PROMPT_MODIFIED="%{$R%}M"
101+ZSH_THEME_GIT_PROMPT_DELETED="%{$R%}D"
102+ZSH_THEME_GIT_PROMPT_UNMERGED="%{$R%}UU"