CHG git is supported, mercury and darcs removed, CHG to tabs.

This commit is contained in:
2025-06-22 01:30:28 +02:00
parent 2189eb4de2
commit 359d03f433

View File

@@ -21,10 +21,7 @@ ZSH_THEME_GIT_PROMPT_SHA_BEFORE="➤ %{$fg_bold[yellow]%}"
ZSH_THEME_GIT_PROMPT_SHA_AFTER="%{$reset_color%}" ZSH_THEME_GIT_PROMPT_SHA_AFTER="%{$reset_color%}"
function prompt_char() { function prompt_char() {
command git branch &>/dev/null && echo "%{$fg[green]%}±%{$reset_color%}" && return command git branch &>/dev/null && echo "%{$fg[green]%}±%{$reset_color%}" || echo "%{$fg[cyan]%}◯%{$reset_color%}"
command hg root &>/dev/null && echo "%{$fg_bold[red]%}☿%{$reset_color%}" && return
command darcs show repo &>/dev/null && echo "%{$fg_bold[green]%}❉%{$reset_color%}" && return
echo "%{$fg[cyan]%}◯%{$reset_color%}"
} }
# Colors vary depending on time lapsed. # Colors vary depending on time lapsed.
@@ -36,45 +33,45 @@ ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL="%{$fg[cyan]%}"
# Determine the time since last commit. If branch is clean, # Determine the time since last commit. If branch is clean,
# use a neutral color, otherwise colors will vary according to time. # use a neutral color, otherwise colors will vary according to time.
function git_time_since_commit() { function git_time_since_commit() {
local COLOR MINUTES HOURS DAYS SUB_HOURS SUB_MINUTES local COLOR MINUTES HOURS DAYS SUB_HOURS SUB_MINUTES
local last_commit now seconds_since_last_commit local last_commit now seconds_since_last_commit
# Only proceed if there is actually a commit # Only proceed if there is actually a commit
if ! last_commit=$(command git -c log.showSignature=false log --pretty=format:'%at' -1 2>/dev/null); then if ! last_commit=$(command git -c log.showSignature=false log --pretty=format:'%at' -1 2>/dev/null); then
echo "[$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL~%{$reset_color%}]" echo "[$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL~%{$reset_color%}]"
return return
fi fi
# Totals # Totals
now=$(date +%s) now=$(date +%s)
seconds_since_last_commit=$(( now - last_commit )) seconds_since_last_commit=$(( now - last_commit ))
MINUTES=$(( seconds_since_last_commit / 60 )) MINUTES=$(( seconds_since_last_commit / 60 ))
HOURS=$(( MINUTES / 60 )) HOURS=$(( MINUTES / 60 ))
# Sub-hours and sub-minutes # Sub-hours and sub-minutes
DAYS=$(( HOURS / 24 )) DAYS=$(( HOURS / 24 ))
SUB_HOURS=$(( HOURS % 24 )) SUB_HOURS=$(( HOURS % 24 ))
SUB_MINUTES=$(( MINUTES % 60 )) SUB_MINUTES=$(( MINUTES % 60 ))
if [[ -z "$(command git status -s 2>/dev/null)" ]]; then if [[ -z "$(command git status -s 2>/dev/null)" ]]; then
COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL" COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL"
else else
if [[ "$MINUTES" -gt 30 ]]; then if [[ "$MINUTES" -gt 30 ]]; then
COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG" COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_LONG"
elif [[ "$MINUTES" -gt 10 ]]; then elif [[ "$MINUTES" -gt 10 ]]; then
COLOR="$ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM" COLOR="$ZSH_THEME_GIT_TIME_SHORT_COMMIT_MEDIUM"
else else
COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_SHORT" COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_SHORT"
fi fi
fi fi
if [[ "$HOURS" -gt 24 ]]; then if [[ "$HOURS" -gt 24 ]]; then
echo "[${COLOR}${DAYS}d${SUB_HOURS}h${SUB_MINUTES}m%{$reset_color%}]" echo "[${COLOR}${DAYS}d${SUB_HOURS}h${SUB_MINUTES}m%{$reset_color%}]"
elif [[ "$MINUTES" -gt 60 ]]; then elif [[ "$MINUTES" -gt 60 ]]; then
echo "[${COLOR}${HOURS}h${SUB_MINUTES}m%{$reset_color%}]" echo "[${COLOR}${HOURS}h${SUB_MINUTES}m%{$reset_color%}]"
else else
echo "[${COLOR}${MINUTES}m%{$reset_color%}]" echo "[${COLOR}${MINUTES}m%{$reset_color%}]"
fi fi
} }
PROMPT=' PROMPT='