summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/termsupport.zsh2
-rw-r--r--themes/lazyatom.zsh-theme40
2 files changed, 42 insertions, 0 deletions
diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh
index fef978748..ec828c287 100644
--- a/lib/termsupport.zsh
+++ b/lib/termsupport.zsh
@@ -4,6 +4,7 @@ case "$TERM" in
print -Pn "\e]0;%n@%m: $1\a" # xterm
}
precmd () {
+ oh_my_zsh_theme_precmd
print -Pn "\e]0;%n@%m: %~\a" # xterm
}
;;
@@ -14,6 +15,7 @@ case "$TERM" in
print -Pn "\e]0;%n@%m: $1\a" # xterm
}
precmd () {
+ oh_my_zsh_theme_precmd
echo -ne "\ekzsh\e\\"
print -Pn "\e]0;%n@%m: %~\a" # xterm
}
diff --git a/themes/lazyatom.zsh-theme b/themes/lazyatom.zsh-theme
new file mode 100644
index 000000000..6263bc2b7
--- /dev/null
+++ b/themes/lazyatom.zsh-theme
@@ -0,0 +1,40 @@
+git_prompt_info() {
+ branch=$(git symbolic-ref HEAD 2> /dev/null) || return
+ git_status="$(git status 2> /dev/null)"
+ state=""
+ case $git_status in
+ *Changed\ but\ not\ updated*)
+ state="%{$fg[red]%}⚡"
+ ;;;
+ *Untracked\ files*)
+ state="%{$fg[red]%}⚡"
+ ;;;
+ esac
+
+ remote=""
+ case $git_status in
+ *Your\ branch\ is\ ahead*)
+ remote="%{$fg[yellow]%}↑"
+ ;;;
+
+ *Your\ branch\ is\ behind*)
+ remote="%{$fg[yellow]%}↓"
+ ;;;
+
+ "Your branch and")
+ remote="%{$fg[yellow]%}"
+ ;;;
+ esac
+ echo " %{$fg[yellow]%}(${branch#refs/heads/})${remote}${state}"
+}
+
+function oh_my_zsh_theme_precmd() {
+ local previous_return_value=$?;
+ prompt="%{$fg[light_gray]%}%c%{$fg[yellow]%}$(git_prompt_info)%{$fg[white]%}"
+ if test $previous_return_value -eq 0
+ then
+ export PROMPT="%{$fg[green]%}➜ %{$fg[white]%}${prompt}%{$fg[green]%} $%{$fg[white]%} "
+ else
+ export PROMPT="%{$fg[red]%}➜ %{$fg[white]%}${prompt}%{$fg[red]%} $%{$fg[white]%} "
+ fi
+} \ No newline at end of file