mirror of
				https://github.com/ohmyzsh/ohmyzsh.git
				synced 2025-11-04 05:01:17 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
# My custom theme:
 | 
						|
#   - single line
 | 
						|
#   - quite simple by default: user@host:$PWD
 | 
						|
#   - green for local shell as non root
 | 
						|
#   - red for ssh shell as non root
 | 
						|
#   - magenta for root sessions
 | 
						|
#   - prefix with remote address for ssh shells
 | 
						|
#   - prefix to detect docker containers or chroot
 | 
						|
#   - git plugin to display current branch and status
 | 
						|
 | 
						|
# git plugin
 | 
						|
ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg[cyan]%}("
 | 
						|
ZSH_THEME_GIT_PROMPT_SUFFIX=") %{$reset_color%}"
 | 
						|
ZSH_THEME_GIT_PROMPT_UNTRACKED="%%"
 | 
						|
ZSH_THEME_GIT_PROMPT_ADDED="+"
 | 
						|
ZSH_THEME_GIT_PROMPT_MODIFIED="*"
 | 
						|
ZSH_THEME_GIT_PROMPT_RENAMED="~"
 | 
						|
ZSH_THEME_GIT_PROMPT_DELETED="!"
 | 
						|
ZSH_THEME_GIT_PROMPT_UNMERGED="?"
 | 
						|
 | 
						|
function zsh_essembeh_gitstatus {
 | 
						|
	ref=$(git symbolic-ref HEAD 2> /dev/null) || return
 | 
						|
	GIT_STATUS=$(git_prompt_status)
 | 
						|
	if [[ -n $GIT_STATUS ]]; then
 | 
						|
		GIT_STATUS=" $GIT_STATUS"
 | 
						|
	fi
 | 
						|
	echo "$ZSH_THEME_GIT_PROMPT_PREFIX${ref#refs/heads/}$GIT_STATUS$ZSH_THEME_GIT_PROMPT_SUFFIX"
 | 
						|
}
 | 
						|
 | 
						|
# by default, use green for user@host and no prefix
 | 
						|
local ZSH_ESSEMBEH_COLOR="green"
 | 
						|
local ZSH_ESSEMBEH_PREFIX=""
 | 
						|
if [[ -n "$SSH_CONNECTION" ]]; then
 | 
						|
	# display the source address if connected via ssh
 | 
						|
	ZSH_ESSEMBEH_PREFIX="%{$fg[yellow]%}[$(echo $SSH_CONNECTION | awk '{print $1}')]%{$reset_color%} "
 | 
						|
	# use red color to highlight a remote connection
 | 
						|
	ZSH_ESSEMBEH_COLOR="red"
 | 
						|
elif [[ -r /etc/debian_chroot ]]; then
 | 
						|
	# prefix prompt in case of chroot
 | 
						|
	ZSH_ESSEMBEH_PREFIX="%{$fg[yellow]%}[chroot:$(cat /etc/debian_chroot)]%{$reset_color%} "
 | 
						|
elif [[ -r /.dockerenv ]]; then
 | 
						|
	# also prefix prompt inside a docker container
 | 
						|
	ZSH_ESSEMBEH_PREFIX="%{$fg[yellow]%}[docker]%{$reset_color%} "
 | 
						|
fi
 | 
						|
if [[ $UID = 0 ]]; then
 | 
						|
	# always use magenta for root sessions, even in ssh
 | 
						|
	ZSH_ESSEMBEH_COLOR="magenta"
 | 
						|
fi
 | 
						|
PROMPT='${ZSH_ESSEMBEH_PREFIX}%{$fg[$ZSH_ESSEMBEH_COLOR]%}%n@%M%{$reset_color%}:%{%B$fg[yellow]%}%~%{$reset_color%b%} $(zsh_essembeh_gitstatus)%(!.#.$) '
 | 
						|
RPROMPT="%(?..%{$fg[red]%}%?%{$reset_color%})"
 |