Skip to content

Instantly share code, notes, and snippets.

@Khip01
Last active September 5, 2025 06:48
Show Gist options
  • Save Khip01/5258e3b6e3e92df6788f3ceec2954c2a to your computer and use it in GitHub Desktop.
Save Khip01/5258e3b6e3e92df6788f3ceec2954c2a to your computer and use it in GitHub Desktop.
daivasmara-custom.zsh-theme
MODE_INDICATOR="%F{135}❮%F{212}❮❮%f" # Lavender deep + pink fuchsia
local return_status="%F{203}%(?..⏎)%f "
ZSH_THEME_GIT_PROMPT_PREFIX="%F{222}|"
ZSH_THEME_GIT_PROMPT_SUFFIX="%f"
ZSH_THEME_GIT_PROMPT_DIRTY="%F{203} ⚡%f"
ZSH_THEME_GIT_PROMPT_AHEAD="%F{221} ↑%f"
ZSH_THEME_GIT_PROMPT_CLEAN="%F{121} ✓%f"
ZSH_THEME_GIT_PROMPT_ADDED="%F{121} ✚"
ZSH_THEME_GIT_PROMPT_MODIFIED="%F{212} ✹"
ZSH_THEME_GIT_PROMPT_DELETED="%F{203} ✖"
ZSH_THEME_GIT_PROMPT_RENAMED="%F{135} ➜"
ZSH_THEME_GIT_PROMPT_UNMERGED="%F{222} ═"
ZSH_THEME_GIT_PROMPT_UNTRACKED="%F{212} ✭"
ZSH_THEME_GIT_PROMPT_SHA_BEFORE="◯ %F{212}"
ZSH_THEME_GIT_PROMPT_SHA_AFTER="%f"
function prompt_char() {
echo "%F{135}❯%F{212}❯%f"
}
ZSH_THEME_GIT_TIME_SINCE_COMMIT_SHORT="%F{121}"
ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM="%F{222}"
ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG="%F{203}"
ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL="%F{246}"
function git_time_since_commit() {
if git rev-parse --git-dir > /dev/null 2>&1; then
if [[ $(git log 2>&1 > /dev/null | grep -c "^fatal: bad default revision") == 0 ]]; then
last_commit=`git log --pretty=format:'%at' -1 2> /dev/null`
now=`date +%s`
seconds_since_last_commit=$((now-last_commit))
MINUTES=$((seconds_since_last_commit / 60))
HOURS=$((seconds_since_last_commit / 3600))
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~%{$reset_color%}]"
fi
fi
}
PROMPT='
%F{212}%m%f %F{246}[%f$(whoami)%F{246}]%f %F{135}%(5~|%-1~/…/%3~|%4~)%f $(git_prompt_short_sha)$(git_prompt_info)
$(prompt_char) '
RPROMPT='${return_status}$(git_time_since_commit)$(git_prompt_status)%f'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment