diff --git a/lib/git.zsh b/lib/git.zsh index 4d1634e8b..4b10b8753 100644 --- a/lib/git.zsh +++ b/lib/git.zsh @@ -49,7 +49,7 @@ git_prompt_status() { elif $(echo "$INDEX" | grep '^ T ' &> /dev/null); then STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS" fi - if $(echo "$INDEX" | grep '^R ' &> /dev/null); then + if $(echo "$INDEX" | grep '^RM ' &> /dev/null); then STATUS="$ZSH_THEME_GIT_PROMPT_RENAMED$STATUS" fi if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then @@ -61,4 +61,4 @@ git_prompt_status() { STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS" fi echo $STATUS -} \ No newline at end of file +} diff --git a/themes/tolkien.zsh-theme b/themes/tolkien.zsh-theme new file mode 100644 index 000000000..9bda136f8 --- /dev/null +++ b/themes/tolkien.zsh-theme @@ -0,0 +1,34 @@ +ZSH_THEME_GIT_PROMPT_PREFIX="on %F{008}git%f:%{$fg[magenta]%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%}" + +ZSH_THEME_GIT_PROMPT_UNTRACKED="%F{011}?%f" +ZSH_THEME_GIT_PROMPT_ADDED="%F{012}+%f" +ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg_bold[green]%}±%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_RENAMED="%F{081}➤%f" +ZSH_THEME_GIT_PROMPT_DELETED="%F{001}-%f" +ZSH_THEME_GIT_PROMPT_UNMERGED="%F{001}✖%f" + +function git_branch { + ref=$(git symbolic-ref HEAD 2> /dev/null) || return + echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$ZSH_THEME_GIT_PROMPT_SUFFIX" +} + +function git_ahead { + GITSTATUS=$(git status 2> /dev/null) + AHEAD=$(echo "$GITSTATUS" | grep '^# Your branch is ahead of' 2> /dev/null) + if [[ -n $AHEAD ]]; then + AHEAD=${AHEAD##\# Your branch is ahead of * by } + AHEAD=${AHEAD%% commits.} + AHEAD=${AHEAD%% commit.} + echo "^%{$fg[magenta]%}"$AHEAD"%{$reset_color%}" + fi + +} + +function virtualenv_info { + [ $VIRTUAL_ENV ] && echo '('`basename $VIRTUAL_ENV`')' +} + +PROMPT=' +╭─ %{$fg[magenta]%}%n%{$reset_color%} at %{$fg[yellow]%}%M%{$reset_color%} in %{$fg_bold[green]%}${PWD/#$HOME/~}%{$reset_color%} $(git_branch)$(git_ahead) $(git_prompt_status) +╰─$(virtualenv_info) '