From 20195480067dd821cca966165bbaab4af9aa7a7e Mon Sep 17 00:00:00 2001 From: Adrien Lecharpentier Date: Tue, 25 Jun 2013 20:36:19 +0200 Subject: [PATCH 1/3] import basic theme --- themes/alecharp.zsh-theme | 60 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 themes/alecharp.zsh-theme diff --git a/themes/alecharp.zsh-theme b/themes/alecharp.zsh-theme new file mode 100644 index 000000000..4ef1047e3 --- /dev/null +++ b/themes/alecharp.zsh-theme @@ -0,0 +1,60 @@ +function prompt_char { + if [[ $? -ne 0 ]]; then + echo "%{$fg_bold[red]%}»%{$reset_color%}" + else + echo "%{$fg_bold[green]%}»%{$reset_color%}" + fi +} + +function git_show_branch { + ref=$(command git symbolic-ref HEAD 2> /dev/null) || \ + ref=$(command git rev-parse --short HEAD 2> /dev/null) || return + + STATUS=${ZSH_THEME_GIT_PROMPT_PREFIX} + STATUS=$STATUS${ZSH_THEME_GIT_PROMPT_BRANCH_PREFIX}${ref#refs/heads/}${ZSH_THEME_GIT_PROMPT_BRANCH_SUFFIX} + remote=${$(command git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/} + if [[ -n ${remote} ]] ; then + + STATUS="$STATUS ${remote#/refs/remote}" + + ahead=$(command git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l | tr -d ' ') + behind=$(command git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l | tr -d ' ') + + if [ $ahead -gt 0 ]; then + STATUS="$STATUS $ahead$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE" + fi + if [ $behind -gt 0 ]; then + STATUS="$STATUS $ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_PREFIX$behind$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_SUFFIX" + fi + if [ $ahead -eq 0 ] && [ $behind -eq 0 ]; then + STATUS="$STATUS =" + fi + fi + + STATUS=$STATUS${ZSH_THEME_GIT_PROMPT_SUFFIX} + echo $STATUS +} + +PROMPT='%{$fg_bold[cyan]%}%n: %{$fg[yellow]%}%04~%{$reset_color%} +$(prompt_char) ' +RPROMPT='$(git_prompt_status)%{$reset_color%} $(git_show_branch)' + +ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[blue]%}[%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_SUFFIX="%{$fg[blue]%}]%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_DIRTY="" +ZSH_THEME_GIT_PROMPT_CLEAN="" + +ZSH_THEME_GIT_PROMPT_BRANCH_PREFIX="%{$fg[magenta]%}" +ZSH_THEME_GIT_PROMPT_BRANCH_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_PREFIX="%{$fg[red]%}" +ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_SUFFIX="%{$reset_color%}" + +ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE="↓" +ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE="↑" +ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE="<>" + +ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%}+" +ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[yellow]%}*" +ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%}-" +ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%}?" + From 80c9d3b45d7be620fedef508f398f413a0672d2f Mon Sep 17 00:00:00 2001 From: Adrien Lecharpentier Date: Wed, 26 Jun 2013 00:52:17 +0200 Subject: [PATCH 2/3] Fix stash warning --- themes/alecharp.zsh-theme | 38 +++++++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/themes/alecharp.zsh-theme b/themes/alecharp.zsh-theme index 4ef1047e3..307246392 100644 --- a/themes/alecharp.zsh-theme +++ b/themes/alecharp.zsh-theme @@ -1,21 +1,24 @@ +# author: Adrien Lecharpentier +# release date: 2013-06-25 + function prompt_char { - if [[ $? -ne 0 ]]; then - echo "%{$fg_bold[red]%}»%{$reset_color%}" - else - echo "%{$fg_bold[green]%}»%{$reset_color%}" - fi + if [[ $? -ne 0 ]]; then + echo "%{$fg_bold[red]%}»%{$reset_color%}" + else + echo "%{$fg_bold[green]%}»%{$reset_color%}" + fi } function git_show_branch { - ref=$(command git symbolic-ref HEAD 2> /dev/null) || \ - ref=$(command git rev-parse --short HEAD 2> /dev/null) || return + ref=$(command git symbolic-ref HEAD 2> /dev/null) || \ + ref=$(command git rev-parse --short HEAD 2> /dev/null) || return - STATUS=${ZSH_THEME_GIT_PROMPT_PREFIX} - STATUS=$STATUS${ZSH_THEME_GIT_PROMPT_BRANCH_PREFIX}${ref#refs/heads/}${ZSH_THEME_GIT_PROMPT_BRANCH_SUFFIX} - remote=${$(command git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/} + STATUS=${ZSH_THEME_GIT_PROMPT_PREFIX} + STATUS=$STATUS${ZSH_THEME_GIT_PROMPT_BRANCH_PREFIX}${ref#refs/heads/}${ZSH_THEME_GIT_PROMPT_BRANCH_SUFFIX} + remote=${$(command git rev-parse --verify ${hook_com[branch]}@{upstream} --symbolic-full-name 2>/dev/null)/refs\/remotes\/} if [[ -n ${remote} ]] ; then - STATUS="$STATUS ${remote#/refs/remote}" + STATUS="$STATUS ${remote#/refs/remote}" ahead=$(command git rev-list ${hook_com[branch]}@{upstream}..HEAD 2>/dev/null | wc -l | tr -d ' ') behind=$(command git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l | tr -d ' ') @@ -27,12 +30,16 @@ function git_show_branch { STATUS="$STATUS $ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_PREFIX$behind$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_SUFFIX" fi if [ $ahead -eq 0 ] && [ $behind -eq 0 ]; then - STATUS="$STATUS =" + STATUS="$STATUS =" fi fi - STATUS=$STATUS${ZSH_THEME_GIT_PROMPT_SUFFIX} - echo $STATUS + if $(command git rev-parse --verify refs/stash >/dev/null 2>&1); then + STATUS="$STATUS $ZSH_THEME_GIT_PROMPT_STASH" + fi + + STATUS=$STATUS${ZSH_THEME_GIT_PROMPT_SUFFIX} + echo $STATUS } PROMPT='%{$fg_bold[cyan]%}%n: %{$fg[yellow]%}%04~%{$reset_color%} @@ -53,8 +60,9 @@ ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE="↓" ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE="↑" ZSH_THEME_GIT_PROMPT_DIVERGED_REMOTE="<>" +ZSH_THEME_GIT_PROMPT_STASH="%{$fg[cyan]%}$" + ZSH_THEME_GIT_PROMPT_ADDED="%{$fg[green]%}+" ZSH_THEME_GIT_PROMPT_MODIFIED="%{$fg[yellow]%}*" ZSH_THEME_GIT_PROMPT_DELETED="%{$fg[red]%}-" ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$fg[cyan]%}?" - From 34c4a13e8c0d6f0e05fd7e9e203b14557c318936 Mon Sep 17 00:00:00 2001 From: Adrien Lecharpentier Date: Wed, 26 Jun 2013 09:58:56 +0200 Subject: [PATCH 3/3] Add color for remote head --- themes/alecharp.zsh-theme | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/themes/alecharp.zsh-theme b/themes/alecharp.zsh-theme index 307246392..b3e317004 100644 --- a/themes/alecharp.zsh-theme +++ b/themes/alecharp.zsh-theme @@ -24,7 +24,7 @@ function git_show_branch { behind=$(command git rev-list HEAD..${hook_com[branch]}@{upstream} 2>/dev/null | wc -l | tr -d ' ') if [ $ahead -gt 0 ]; then - STATUS="$STATUS $ahead$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE" + STATUS="$STATUS $ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_PREFIX$ahead$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE$ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_SUFFIX" fi if [ $behind -gt 0 ]; then STATUS="$STATUS $ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_PREFIX$behind$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE$ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_SUFFIX" @@ -55,6 +55,8 @@ ZSH_THEME_GIT_PROMPT_BRANCH_PREFIX="%{$fg[magenta]%}" ZSH_THEME_GIT_PROMPT_BRANCH_SUFFIX="%{$reset_color%}" ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_PREFIX="%{$fg[red]%}" ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE_SUFFIX="%{$reset_color%}" +ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_PREFIX="%{$fg[green]%}" +ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE_SUFFIX="%{$reset_color%}" ZSH_THEME_GIT_PROMPT_BEHIND_REMOTE="↓" ZSH_THEME_GIT_PROMPT_AHEAD_REMOTE="↑"