diff options
author | Dominik Ritter <dritter03@googlemail.com> | 2015-10-24 02:05:37 +0300 |
---|---|---|
committer | Dominik Ritter <dritter03@googlemail.com> | 2015-10-24 02:05:37 +0300 |
commit | 0fa635275c99e66b14c972a8aa01cda7343035bf (patch) | |
tree | 66fd38161d8fefe61e87398ea6792c3b82bd0bd2 /functions/colors.zsh | |
parent | 2b8cb5b9a47c0e97a501a3e804dc7089619c1e9a (diff) |
Extracted color functions to a separate file.
Diffstat (limited to 'functions/colors.zsh')
-rw-r--r-- | functions/colors.zsh | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/functions/colors.zsh b/functions/colors.zsh new file mode 100644 index 00000000..c82af9ea --- /dev/null +++ b/functions/colors.zsh @@ -0,0 +1,56 @@ +# 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 )) +} + |