diff --git a/lib/termsupport.zsh b/lib/termsupport.zsh index fef97874..ec828c28 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 00000000..6263bc2b --- /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