summaryrefslogtreecommitdiff
path: root/functions/colors.zsh
diff options
context:
space:
mode:
authorDominik Ritter <dritter03@googlemail.com>2015-10-24 02:05:37 +0300
committerDominik Ritter <dritter03@googlemail.com>2015-10-24 02:05:37 +0300
commit0fa635275c99e66b14c972a8aa01cda7343035bf (patch)
tree66fd38161d8fefe61e87398ea6792c3b82bd0bd2 /functions/colors.zsh
parent2b8cb5b9a47c0e97a501a3e804dc7089619c1e9a (diff)
Extracted color functions to a separate file.
Diffstat (limited to 'functions/colors.zsh')
-rw-r--r--functions/colors.zsh56
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 ))
+}
+