78 lines
1.8 KiB
Bash
78 lines
1.8 KiB
Bash
#!/bin/zsh
|
|
|
|
autoload -U colors && colors
|
|
|
|
. $MPATH/spectrum
|
|
reset="%{${reset_color}%}"
|
|
|
|
#
|
|
# 256-color-term or rxvt with wrong tput output
|
|
#
|
|
if [[ "`tput colors`" == "256" ]] || [[ "`tput colors`" == "88" ]] ; then
|
|
pathcolor="%{${FG[27]}%}"
|
|
ropathcolor="%{${FG[92]}%}"
|
|
|
|
gitdirty="%{${FX[bold]}${FG[160]}%}"
|
|
gitstaged="%{${FX[bold]}${FG[34]}%}"
|
|
gitclean="%{${FG[240]}%}"
|
|
stycolor="%{${FG[240]}%}"
|
|
exitcolor=$gitdirty
|
|
rpscolor="%{${FG[238]}%}"
|
|
gituntracked="%{$FX[bold]$FG[253]%}●%{$reset$rpscolor%}"
|
|
|
|
local usercolor_base
|
|
if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then
|
|
usercolor_base=196
|
|
usercolor_mod=30
|
|
else
|
|
usercolor_base=47
|
|
usercolor_mod=28
|
|
|
|
fi
|
|
if [ ! -z $SSH_CLIENT ] || [ ! -z $SSH_CONNECTION ]; then
|
|
usercolor_base=$((usercolor_base + usercolor_mod))
|
|
hostcolor="%{${FG[226]}%}"
|
|
else
|
|
hostcolor=$gitclean
|
|
fi
|
|
usercolor="%{${FX[bold]}${FG[$usercolor_base]}%}"
|
|
|
|
for colorfile in /etc/DIR_COLORS.256 \
|
|
/etc/DIR_COLORS.256color \
|
|
/etc/colors/DIR_COLORS.256 \
|
|
/etc/colors/DIR_COLORS.256color; do
|
|
if [ -e $colorfile ] ; then
|
|
eval "$(dircolors $colorfile)"
|
|
break;
|
|
fi
|
|
done
|
|
else
|
|
pathcolor="%{$fg_bold[blue]}%}"
|
|
|
|
gitdirty="%{${fg[yellow]}%}"
|
|
gitstaged="%{${fg[green]}%}"
|
|
gitclean="%{${fg[white]}%}"
|
|
vcs_revision="%{${fg_bold[black]}%}"
|
|
|
|
exitcolor="$gitdirty"
|
|
rpscolor="%{$fg_bold[black]}%}"
|
|
|
|
if [ "$EUID" = "0" ] || [ "$USER" = "root" ] ; then
|
|
if [ ! -z $SSH_CLIENT ]; then
|
|
usercolor="%{${fg_bold[yellow]}%}"
|
|
hostcolor="%{${fg_no_bold[blue]}%}"
|
|
else
|
|
usercolor="%{${fg_bold[red]}%}"
|
|
hostcolor="%{${fg_bold[black]}%}"
|
|
fi
|
|
else
|
|
if [ ! -z $SSH_CLIENT ]; then
|
|
usercolor="%{${fg_bold[blue]}%}"
|
|
hostcolor="%{${fg_no_bold[blue]}%}"
|
|
else
|
|
usercolor="%{${fg_bold[green]}%}"
|
|
hostcolor="%{${fg_bold[black]}%}"
|
|
fi
|
|
fi
|
|
fi
|