Created
April 26, 2012 21:59
-
-
Save balanceiskey/2503531 to your computer and use it in GitHub Desktop.
ZSH Sunbolt
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 by Adam Lindberg ([email protected]) | |
# Intended to be used with Solarized: http://ethanschoonover.com/solarized | |
# (Needs Git plugin for current_branch method) | |
#------------------------------------------------------------------------------- | |
# Modified by Sundeep Malladi to include Mercurial (and some other shtuff). | |
# Color shortcuts | |
R=$fg[red] | |
G=$fg[green] | |
M=$fg[magenta] | |
RB=$fg_bold[red] | |
YB=$fg_bold[yellow] | |
BB=$fg_bold[blue] | |
RESET=$reset_color | |
if [ "$(whoami)" = "root" ]; then | |
PROMPTCOLOR="%{$RB%}" PREFIX="-!-"; | |
else | |
PROMPTCOLOR="" PREFIX="---"; | |
fi | |
local return_code="%(?..%{$R%}%? ↵%{$RESET%})" | |
# 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/}$(parse_git_dirty)$(git_prompt_ahead)$(custom_git_prompt_status)$ZSH_THEME_GIT_PROMPT_SUFFIX" | |
} | |
#HG-PROMPT action | |
function hg_prompt_info { | |
hg prompt --angle-brackets "\ | |
< on %{$fg[magenta]%}<branch>%{$reset_color%}>\ | |
< at %{$fg[yellow]%}<tags|%{$reset_color%}, %{$fg[yellow]%}>%{$reset_color%}>\ | |
%{$fg[green]%}<status|modified|unknown><update>%{$reset_color%}< | |
patches: <patches|join( → )|pre_applied(%{$fg[yellow]%})|post_applied(%{$reset_color%})|pre_unapplied(%{$fg_bold[black]%})|post_unapplied(%{$reset_color%})>>" 2>/dev/null | |
} | |
# %B sets bold text | |
#PROMPT='%B$PREFIX %2~ $(custom_git_prompt)%{$M%}%B»%b%{$RESET%} ' | |
#PROMPT='%{$fg_bold[blue]%}in:${PWD/#$HOME/~}%{$reset_color%} $(hg_prompt_info) $(custom_git_prompt)' | |
PROMPT='%{$fg_bold[blue]%}(§)%{$reset_color%} $(hg_prompt_info) $(custom_git_prompt)' | |
RPS1="${return_code}" | |
ZSH_THEME_GIT_PROMPT_PREFIX="%{$YB%}‹" | |
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$YB%}›%{$RESET%} " | |
ZSH_THEME_GIT_PROMPT_DIRTY="%{$R%}*" | |
ZSH_THEME_GIT_PROMPT_CLEAN="" | |
ZSH_THEME_GIT_PROMPT_AHEAD="%{$BB%}➔" | |
ZSH_THEME_GIT_STATUS_PREFIX=" " | |
# Staged | |
ZSH_THEME_GIT_PROMPT_STAGED_ADDED="%{$G%}A" | |
ZSH_THEME_GIT_PROMPT_STAGED_MODIFIED="%{$G%}M" | |
ZSH_THEME_GIT_PROMPT_STAGED_RENAMED="%{$G%}R" | |
ZSH_THEME_GIT_PROMPT_STAGED_DELETED="%{$G%}D" | |
# Not-staged | |
ZSH_THEME_GIT_PROMPT_UNTRACKED="%{$R%}⁇" | |
ZSH_THEME_GIT_PROMPT_MODIFIED="%{$R%}M" | |
ZSH_THEME_GIT_PROMPT_DELETED="%{$R%}D" | |
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