57 lines
1.4 KiB
Bash
57 lines
1.4 KiB
Bash
# vim:ft=zsh ts=2 sw=2 sts=2 et fenc=utf-8
|
|
################################################################
|
|
# Color functions
|
|
# This file holds some color-functions for
|
|
# the powerlevel9k-ZSH-theme
|
|
# https://github.com/bhilburn/powerlevel9k
|
|
################################################################
|
|
|
|
# Get numerical color codes. That way we translate ANSI codes
|
|
# into ZSH-Style color codes.
|
|
function getColorCode() {
|
|
# Check if given value is already numerical
|
|
if [[ "$1" = <-> ]]; then
|
|
# ANSI color codes distinguish between "foreground"
|
|
# and "background" colors. We don't need to do that,
|
|
# as ZSH uses a 256 color space anyway.
|
|
if [[ "$1" = <8-15> ]]; then
|
|
echo $(($1 - 8))
|
|
else
|
|
echo "$1"
|
|
fi
|
|
else
|
|
typeset -A codes
|
|
codes=(
|
|
'black' '000'
|
|
'red' '001'
|
|
'green' '002'
|
|
'yellow' '003'
|
|
'blue' '004'
|
|
'magenta' '005'
|
|
'cyan' '006'
|
|
'white' '007'
|
|
)
|
|
|
|
# Strip eventual "bg-" prefixes
|
|
1=${1#bg-}
|
|
# Strip eventual "fg-" prefixes
|
|
1=${1#fg-}
|
|
# Strip eventual "br" prefixes ("bright" colors)
|
|
1=${1#br}
|
|
echo $codes[$1]
|
|
fi
|
|
}
|
|
|
|
# Check if two colors are equal, even if one is specified as ANSI code.
|
|
function isSameColor() {
|
|
if [[ "$1" == "NONE" || "$2" == "NONE" ]]; then
|
|
return 1
|
|
fi
|
|
|
|
local color1=$(getColorCode "$1")
|
|
local color2=$(getColorCode "$2")
|
|
|
|
return $(( color1 != color2 ))
|
|
}
|
|
|