mirror of
				git://git.code.sf.net/p/zsh/code
				synced 2025-11-04 07:21:06 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			56 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
# adam1 prompt theme
 | 
						|
 | 
						|
prompt_adam1_help () {
 | 
						|
  cat <<'EOF'
 | 
						|
This prompt is color-scheme-able.  You can invoke it thus:
 | 
						|
 | 
						|
  prompt adam1 [<color1> [<color2> [<color3>]]]
 | 
						|
 | 
						|
where the colors are for the user@host background, current working
 | 
						|
directory, and current working directory if the prompt is split over
 | 
						|
two lines respectively.  The default colors are blue, cyan and green.
 | 
						|
This theme works best with a dark background.
 | 
						|
 | 
						|
Recommended fonts for this theme: nexus or vga or similar.  If you
 | 
						|
don't have any of these, then specify the `plain' option to use 7-bit
 | 
						|
replacements for the 8-bit characters.
 | 
						|
 | 
						|
And you probably thought adam1 was overkill.
 | 
						|
EOF
 | 
						|
}
 | 
						|
 | 
						|
prompt_adam1_setup () {
 | 
						|
  prompt_adam1_color1=${1:-'blue'}
 | 
						|
  prompt_adam1_color2=${2:-'cyan'}
 | 
						|
  prompt_adam1_color3=${3:-'green'}
 | 
						|
 | 
						|
  base_prompt="%{$bg_no_bold[$prompt_adam1_color1]%}%n@%m%{$reset_color%} "
 | 
						|
  post_prompt="%{$reset_color%}"
 | 
						|
 | 
						|
  base_prompt_no_color=$(echo "$base_prompt" | perl -pe "s/%{.*?%}//g")
 | 
						|
  post_prompt_no_color=$(echo "$post_prompt" | perl -pe "s/%{.*?%}//g")
 | 
						|
 | 
						|
  precmd  () { prompt_adam1_precmd }
 | 
						|
  preexec () { }
 | 
						|
}
 | 
						|
 | 
						|
prompt_adam1_precmd () {
 | 
						|
  setopt noxtrace localoptions
 | 
						|
  local base_prompt_expanded_no_color base_prompt_etc
 | 
						|
  local prompt_length space_left
 | 
						|
 | 
						|
  base_prompt_expanded_no_color=$(print -P "$base_prompt_no_color")
 | 
						|
  base_prompt_etc=$(print -P "$base_prompt%(4~|...|)%3~")
 | 
						|
  prompt_length=${#base_prompt_etc}
 | 
						|
  if [[ $prompt_length -lt 40 ]]; then
 | 
						|
    path_prompt="%{$fg_bold[$prompt_adam1_color2]%}%(4~|...|)%3~%{$fg_bold[white]%}"
 | 
						|
  else
 | 
						|
    space_left=$(( $COLUMNS - $#base_prompt_expanded_no_color - 2 ))
 | 
						|
    path_prompt="%{$fg_bold[$prompt_adam1_color3]%}%${space_left}<...<%~$prompt_newline%{$fg_bold_white%}"
 | 
						|
  fi
 | 
						|
  PS1="$base_prompt$path_prompt %# $post_prompt"
 | 
						|
  PS2="$base_prompt$path_prompt %_> $post_prompt"
 | 
						|
  PS3="$base_prompt$path_prompt ?# $post_prompt"
 | 
						|
}
 | 
						|
 | 
						|
prompt_adam1_setup "$@"
 |