Compare commits
	
		
			1 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 2aa689724c | 
| @@ -1,4 +1,4 @@ | ||||
| # smd.zsh-theme, based on smt.zsh-theme, based on dogenpunk by Matthew Nelson. | ||||
| # smd.zsh-theme by Thomas Kuschel, based on smt.zsh-theme, based on dogenpunk by Matthew Nelson. | ||||
|  | ||||
| MODE_INDICATOR="%{$fg_bold[red]%}❮%{$reset_color%}%{$fg[red]%}❮❮%{$reset_color%}" | ||||
| local return_status="%{$fg[red]%}%(?..%?⏎)%{$reset_color%} " | ||||
| @@ -21,7 +21,7 @@ ZSH_THEME_GIT_PROMPT_SHA_BEFORE="➤ %{$fg_bold[yellow]%}" | ||||
| ZSH_THEME_GIT_PROMPT_SHA_AFTER="%{$reset_color%}" | ||||
|  | ||||
| function prompt_char() { | ||||
| 	command git branch &>/dev/null && echo "%{$fg[green]%}±%{$reset_color%}" || echo "%{$fg[cyan]%}◯%{$reset_color%}" | ||||
|  command git branch &>/dev/null && echo "%{$fg[green]%}±%{$reset_color%}" || echo "%{$fg[cyan]%}◯%{$reset_color%}" | ||||
| } | ||||
|  | ||||
| # Colors vary depending on time lapsed. | ||||
| @@ -33,49 +33,48 @@ ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL="%{$fg[cyan]%}" | ||||
| # 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() { | ||||
| 	local COLOR MINUTES HOURS DAYS SUB_HOURS SUB_MINUTES | ||||
| 	local last_commit now seconds_since_last_commit | ||||
|  local COLOR MINUTES HOURS DAYS SUB_HOURS SUB_MINUTES | ||||
|  local last_commit now seconds_since_last_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 | ||||
| 		echo "[$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL~%{$reset_color%}]" | ||||
| 		return | ||||
| 	fi | ||||
|  # 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 | ||||
|   echo "[$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL~%{$reset_color%}]" | ||||
|   return | ||||
|  fi | ||||
|  | ||||
| 	# Totals | ||||
| 	now=$(date +%s) | ||||
| 	seconds_since_last_commit=$(( now - last_commit )) | ||||
| 	MINUTES=$(( seconds_since_last_commit / 60 )) | ||||
| 	HOURS=$(( MINUTES / 60 )) | ||||
|  # Totals | ||||
|  now=$(date +%s) | ||||
|  seconds_since_last_commit=$(( now - last_commit )) | ||||
|  MINUTES=$(( seconds_since_last_commit / 60 )) | ||||
|  HOURS=$(( MINUTES / 60 )) | ||||
|  | ||||
| 	# Sub-hours and sub-minutes | ||||
| 	DAYS=$(( HOURS / 24 )) | ||||
| 	SUB_HOURS=$(( HOURS % 24 )) | ||||
| 	SUB_MINUTES=$(( MINUTES % 60 )) | ||||
|  # Sub-hours and sub-minutes | ||||
|  DAYS=$(( HOURS / 24 )) | ||||
|  SUB_HOURS=$(( HOURS % 24 )) | ||||
|  SUB_MINUTES=$(( MINUTES % 60 )) | ||||
|  | ||||
| 	if [[ -z "$(command git status -s 2>/dev/null)" ]]; then | ||||
| 		COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL" | ||||
| 	else | ||||
| 		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 | ||||
| 	fi | ||||
|  if [[ -z "$(command git status -s 2>/dev/null)" ]]; then | ||||
|   COLOR="$ZSH_THEME_GIT_TIME_SINCE_COMMIT_NEUTRAL" | ||||
|  else | ||||
|   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 | ||||
|  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 | ||||
|  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 | ||||
| } | ||||
|  | ||||
| PROMPT=' | ||||
| %{$fg[cyan]%}%m%{$reset_color%} 福 %{$fg[cyan]%}%~ %{$reset_color%}$(git_prompt_short_sha)$(git_prompt_info) | ||||
| %{$fg[red]%}%!%{$reset_color%} $(prompt_char) ❯ ' | ||||
|  | ||||
| RPROMPT='${return_status}$(git_time_since_commit)$(git_prompt_status)%{$reset_color%}' | ||||
|   | ||||
		Reference in New Issue
	
	Block a user