# 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 )) }