Last active
June 21, 2017 20:22
-
-
Save fervic/ba13cacc0042387a413c to your computer and use it in GitHub Desktop.
This theme combines nicoulaj simplicity with sunrise Git status codes
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Sunrise theme for oh-my-zsh | |
# Intended to be used with Solarized: http://ethanschoonover.com/solarized | |
# Color shortcuts | |
R=$fg_no_bold[red] | |
G=$fg_no_bold[green] | |
M=$fg_no_bold[magenta] | |
Y=$fg_no_bold[yellow] | |
B=$fg_no_bold[blue] | |
RESET=$reset_color | |
# Customizable parameters. | |
PROMPT_PATH_MAX_LENGTH=30 | |
PROMPT_DEFAULT_END='>' | |
PROMPT_ROOT_END='>!>' | |
PROMPT_SUCCESS_COLOR=$G | |
PROMPT_FAILURE_COLOR=$R | |
PROMPT_WD_INFO_COLOR="[38;5;242m" | |
# Get the status of the working tree (copied and modified from git.zsh) | |
custom_git_prompt_status() { | |
INDEX=$(git status --porcelain 2> /dev/null) | |
STATUS="" | |
# Non-staged | |
if $(echo "$INDEX" | grep '^?? ' &> /dev/null); then | |
STATUS="$ZSH_THEME_GIT_PROMPT_UNTRACKED$STATUS" | |
fi | |
if $(echo "$INDEX" | grep '^UU ' &> /dev/null); then | |
STATUS="$ZSH_THEME_GIT_PROMPT_UNMERGED$STATUS" | |
fi | |
if $(echo "$INDEX" | grep '^ D ' &> /dev/null); then | |
STATUS="$ZSH_THEME_GIT_PROMPT_DELETED$STATUS" | |
fi | |
if $(echo "$INDEX" | grep '^.M ' &> /dev/null); then | |
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS" | |
elif $(echo "$INDEX" | grep '^AM ' &> /dev/null); then | |
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS" | |
elif $(echo "$INDEX" | grep '^ T ' &> /dev/null); then | |
STATUS="$ZSH_THEME_GIT_PROMPT_MODIFIED$STATUS" | |
fi | |
# Staged | |
if $(echo "$INDEX" | grep '^D ' &> /dev/null); then | |
STATUS="$ZSH_THEME_GIT_PROMPT_STAGED_DELETED$STATUS" | |
fi | |
if $(echo "$INDEX" | grep '^R' &> /dev/null); then | |
STATUS="$ZSH_THEME_GIT_PROMPT_STAGED_RENAMED$STATUS" | |
fi | |
if $(echo "$INDEX" | grep '^M' &> /dev/null); then | |
STATUS="$ZSH_THEME_GIT_PROMPT_STAGED_MODIFIED$STATUS" | |
fi | |
if $(echo "$INDEX" | grep '^A' &> /dev/null); then | |
STATUS="$ZSH_THEME_GIT_PROMPT_STAGED_ADDED$STATUS" | |
fi | |
if $(echo -n "$STATUS" | grep '.*' &> /dev/null); then | |
STATUS="$ZSH_THEME_GIT_STATUS_PREFIX$STATUS" | |
fi | |
echo $STATUS | |
} | |
# get the name of the branch we are on (copied and modified from git.zsh) | |
function custom_git_prompt() { | |
ref=$(git symbolic-ref HEAD 2> /dev/null) || return | |
echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$(git_prompt_ahead)$(custom_git_prompt_status)$ZSH_THEME_GIT_PROMPT_SUFFIX" | |
} | |
# %B sets bold text | |
PROMPT='%(0?.%{$G%}.%{$R%})${SSH_TTY:+[%n@%m]}%{$FX[bold]%}%(!.$Y$PROMPT_ROOT_END.$PROMPT_DEFAULT_END)%{$FX[no-bold]%}%{$FX[reset]%} ' | |
RPROMPT='%{$PROMPT_WD_INFO_COLOR%}%~ $(custom_git_prompt)%b%{$RESET%}' | |
ZSH_THEME_GIT_PROMPT_PREFIX="%{$PROMPT_WD_INFO_COLOR%}‹%{$Y%}" | |
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$PROMPT_WD_INFO_COLOR%}›%{$RESET%}" | |
ZSH_THEME_GIT_PROMPT_AHEAD="%{$B%}➔" | |
ZSH_THEME_GIT_STATUS_PREFIX=" " | |
# Staged | |
ZSH_THEME_GIT_PROMPT_STAGED_ADDED="%{$G%}+" | |
ZSH_THEME_GIT_PROMPT_STAGED_MODIFIED="%{$G%}M" | |
ZSH_THEME_GIT_PROMPT_STAGED_RENAMED="%{$G%}R" | |
ZSH_THEME_GIT_PROMPT_STAGED_DELETED="%{$G%}-" | |
# Not-staged | |
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$R%}?" | |
ZSH_THEME_GIT_PROMPT_MODIFIED="%{$R%}M" | |
ZSH_THEME_GIT_PROMPT_DELETED="%{$R%}-" | |
ZSH_THEME_GIT_PROMPT_UNMERGED="%{$R%}UU" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment