wezm zsh theme customization
PROMPT=' | |
$(git_prompt_info)%(?,,%{${fg_bold[white]}%}[%?]%{$reset_color%} )%{$fg[yellow]%}%# %{$reset_color%} ' | |
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[blue]%}(" | |
ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} " | |
ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%})%{$fg[red]%}⚡%{$reset_color%}" | |
ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})" | |
# ------ Time since last git commit ------ | |
# Colors vary depending on time lapsed. | |
ZSH_THEME_GIT_TIME_SINCE_COMMIT_SHORT="%{$fg[red]%}" | |
ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM="%{$fg[red]%}" | |
ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG="%{$fg[red]%}" | |
ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL="%{$fg[red]%}" | |
# Determine the time since last commit. If branch is clean, | |
# use a neutral color, otherwise colors will vary according to time. | |
function git_time_since_commit() { | |
if git rev-parse --git-dir > /dev/null 2>&1; then | |
# Only proceed if there is actually a commit. | |
if [[ $(git log 2>&1 > /dev/null | grep -c "^fatal: bad default revision") == 0 ]]; then | |
# Get the last commit. | |
last_commit=`git log --pretty=format:'%at' -1 2> /dev/null` | |
now=`date +%s` | |
seconds_since_last_commit=$((now-last_commit)) | |
# Totals | |
MINUTES=$((seconds_since_last_commit / 60)) | |
HOURS=$((seconds_since_last_commit/3600)) | |
# Sub-hours and sub-minutes | |
DAYS=$((seconds_since_last_commit / 86400)) | |
SUB_HOURS=$((HOURS % 24)) | |
SUB_MINUTES=$((MINUTES % 60)) | |
if [[ -n $(git status -s 2> /dev/null) ]]; then | |
if [ "$MINUTES" -gt 30 ]; then | |
COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG" | |
elif [ "$MINUTES" -gt 10 ]; then | |
COLOR="$ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM" | |
else | |
COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_SHORT" | |
fi | |
else | |
COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL" | |
fi | |
if [ "$HOURS" -gt 24 ]; then | |
echo "[$COLOR${DAYS}d${SUB_HOURS}h${SUB_MINUTES}m%{$reset_color%}]" | |
elif [ "$MINUTES" -gt 60 ]; then | |
echo "[$COLOR${HOURS}h${SUB_MINUTES}m%{$reset_color%}]" | |
else | |
echo "[$COLOR${MINUTES}m%{$reset_color%}]" | |
fi | |
else | |
COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL" | |
echo "[$COLOR~]" | |
fi | |
fi | |
} | |
RPROMPT='$(git_time_since_commit)$(git_prompt_status)%{$reset_color%} %{$fg[yellow]%}福 ओम् [%T] %{$reset_color%} %{$fg[green]%}%~%{$reset_color%}' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment