summaryrefslogtreecommitdiff
path: root/functions/colors.zsh
diff options
context:
space:
mode:
authorV1rgul <V1rgul@users.noreply.github.com>2016-01-18 07:09:19 +0300
committerV1rgul <V1rgul@users.noreply.github.com>2016-01-18 07:09:19 +0300
commita0c664b1743131888cd7f72e94135edaa79dad2b (patch)
treec95e2c51966e2145bd837e07d73868be0ff89549 /functions/colors.zsh
parent7394608d5621d41f7211032ab1048a313d1dee7e (diff)
parent67895cc5da1fe479d0ae321fba750e199758eee4 (diff)
Merge pull request #1 from bhilburn/next
Merge original repo
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 ))
+}
+