zsh/modules/color/init
2016-01-05 04:25:41 +01:00

80 lines
1.9 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
[[ -z "$LS_COLORS" ]] && [ -e /etc/DIR_COLORS ] && eval "$(dircolors /etc/DIR_COLORS)"