51 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| function zsh_spwd {
 | |
|   paths=(${(s:/:)PWD})
 | |
| 
 | |
|   cur_path='/'
 | |
|   cur_short_path='/'
 | |
|   for directory in ${paths[@]}
 | |
|   do
 | |
|     cur_dir=''
 | |
|     for (( i=0; i<${#directory}; i++ )); do
 | |
|       cur_dir+="${directory:$i:1}"
 | |
|       matching=("$cur_path"/"$cur_dir"*/)
 | |
|       if [[ ${#matching[@]} -eq 1 ]]; then
 | |
|         break
 | |
|       fi
 | |
|     done
 | |
|     cur_short_path+="$cur_dir/"
 | |
|     cur_path+="$directory/"
 | |
|   done
 | |
| 
 | |
|   printf %q "${cur_short_path: : -1}"
 | |
|   echo
 | |
| }
 | |
| 
 | |
| function zsh_root_color {
 | |
|   if test "$EUID" -eq 0
 | |
|   then
 | |
|     echo "%{$fg_bold[green]%}"
 | |
|   else
 | |
|     echo "%{$fg_bold[yellow]%}"
 | |
|   fi
 | |
| }
 | |
| 
 | |
| function zsh_exitcode_color {
 | |
|   echo "%(?:%{$fg_bold[green]%}:%{$fg_bold[red]%})"
 | |
| }
 | |
| 
 | |
| function zsh_hostname {
 | |
|   if [ -z "$ZSH_HOSTNAME" ]
 | |
|   then
 | |
|     hostname -s
 | |
|   else
 | |
|     echo "$ZSH_HOSTNAME"
 | |
|   fi
 | |
| }
 | |
| 
 | |
| PROMPT='$(zsh_root_color)$(whoami)%{$reset_color%}@$(zsh_exitcode_color)$(zsh_hostname) %{$fg[cyan]%}$(zsh_spwd)%{$reset_color%} $(git_prompt_info)'
 | |
| 
 | |
| ZSH_THEME_GIT_PROMPT_PREFIX="%{$fg_bold[blue]%}git:(%{$fg[red]%}"
 | |
| ZSH_THEME_GIT_PROMPT_SUFFIX="%{$reset_color%} "
 | |
| ZSH_THEME_GIT_PROMPT_DIRTY="%{$fg[blue]%}) %{$fg[yellow]%}✗"
 | |
| ZSH_THEME_GIT_PROMPT_CLEAN="%{$fg[blue]%})"
 |