Compare commits
	
		
			3 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 3e127fe60d | |||
| 080843310c | |||
| f638d8c652 | 
							
								
								
									
										43
									
								
								readme.md
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								readme.md
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | |||||||
|  | # Installation of zsh (z-shell) with oh-my-zsh in Arch Linux | ||||||
|  |  | ||||||
|  | ## Preparation | ||||||
|  |  | ||||||
|  | You would like to install the package manager `yay` instead of `pacman` first: | ||||||
|  |  | ||||||
|  | #### Yay installation | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | sudo pacman -S --needed git base-devel | ||||||
|  | git clone https://aur.archlinux.org/yay.git | ||||||
|  | cd yay | ||||||
|  | makepkg -si | ||||||
|  | ``` | ||||||
|  | You can find support at https://github.com/Jguer/yay | ||||||
|  |  | ||||||
|  | #### Installation | ||||||
|  |  | ||||||
|  | ``` | ||||||
|  | yay oh-my-zsh | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | #### Configuration | ||||||
|  |  | ||||||
|  | Copy the file `smd.zsh-theme` of this repository to the `themes` directory, like | ||||||
|  | ``` | ||||||
|  | sudo wget -P /usr/share/oh-my-zsh/themes https://git.kuschel.at/public/smd.zsh-theme/releases/download/1.0/smd.zsh-theme | ||||||
|  | ``` | ||||||
|  | Then copy the zsh template `zshrc` to your home directory | ||||||
|  | ``` | ||||||
|  | cp /usr/share/oh-my-zsh/zshrc ~/.zshrc | ||||||
|  | ``` | ||||||
|  | Now you have to edit this file with e.g. `nano -cl ~/.zshrc` | ||||||
|  | an` replace the line with ZSH_THEME to: | ||||||
|  | ``` | ||||||
|  | ZSH_THEME="smd" | ||||||
|  | ``` | ||||||
|  | In addition, I like to replace the HIST_STAMPS to: | ||||||
|  | ``` | ||||||
|  | HIST_STAMPS="yyyy-mm-dd" | ||||||
|  | ``` | ||||||
|  |  | ||||||
|  | -- eof -- | ||||||
| @@ -1,5 +1,5 @@ | |||||||
| # smd.zsh-theme by Thomas Kuschel, based on smt.zsh-theme, based on dogenpunk by Matthew Nelson. | # smd.zsh-theme, based on smt.zsh-theme, based on dogenpunk by Matthew Nelson. | ||||||
|  | REPORTTIME=3 | ||||||
| MODE_INDICATOR="%{$fg_bold[red]%}❮%{$reset_color%}%{$fg[red]%}❮❮%{$reset_color%}" | MODE_INDICATOR="%{$fg_bold[red]%}❮%{$reset_color%}%{$fg[red]%}❮❮%{$reset_color%}" | ||||||
| local return_status="%{$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%}" | ZSH_THEME_GIT_PROMPT_SHA_AFTER="%{$reset_color%}" | ||||||
|  |  | ||||||
| function prompt_char() { | 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. | # Colors vary depending on time lapsed. | ||||||
| @@ -33,48 +33,48 @@ 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 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) | 	seconds_since_last_commit=$(( $(date +%s) - 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=' | ||||||
| %{$fg[cyan]%}%m%{$reset_color%} 福 %{$fg[cyan]%}%~ %{$reset_color%}$(git_prompt_short_sha)$(git_prompt_info) | %{$fg[cyan]%}%m%{$reset_color%} 福 %{$fg[cyan]%}%~ %{$reset_color%}$(git_prompt_short_sha)$(git_prompt_info) | ||||||
| %{$fg[red]%}%!%{$reset_color%} $(prompt_char) ❯ ' | %{$fg[red]%}%!%{$reset_color%} $(prompt_char) ❯ ' | ||||||
|  |  | ||||||
| RPROMPT='${return_status}$(git_time_since_commit)$(git_prompt_status)%{$reset_color%}' | RPROMPT='${return_status}$(git_time_since_commit)$(git_prompt_status)%{$reset_color%}' | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user