]> git.rmz.io Git - dotfiles.git/commitdiff
bin: add colortest{,256} to print out a bunch of terminal colours
authorSamir Benmendil <me@rmz.io>
Wed, 12 May 2021 19:00:13 +0000 (20:00 +0100)
committerSamir Benmendil <me@rmz.io>
Wed, 12 May 2021 19:00:13 +0000 (20:00 +0100)
bin/colortest [new file with mode: 0755]
bin/colortest256 [new file with mode: 0755]

diff --git a/bin/colortest b/bin/colortest
new file mode 100755 (executable)
index 0000000..d45f8d9
--- /dev/null
@@ -0,0 +1,27 @@
+#!/bin/bash
+# https://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html
+#
+#   This file echoes a bunch of color codes to the 
+#   terminal to demonstrate what's available.  Each 
+#   line is the color code of one forground color,
+#   out of 17 (default + 16 escapes), followed by a 
+#   test use of that color on all nine background 
+#   colors (default + 8 escapes).
+#
+
+T='gYw'   # The test text
+
+echo -e "\n                 40m     41m     42m     43m\
+     44m     45m     46m     47m";
+
+for FGs in '    m' '   1m' '  30m' '1;30m' '  31m' '1;31m' '  32m' \
+           '1;32m' '  33m' '1;33m' '  34m' '1;34m' '  35m' '1;35m' \
+           '  36m' '1;36m' '  37m' '1;37m';
+  do FG=${FGs// /}
+  echo -en " $FGs \033[$FG  $T  "
+  for BG in 40m 41m 42m 43m 44m 45m 46m 47m;
+    do echo -en "$EINS \033[$FG\033[$BG  $T  \033[0m";
+  done
+  echo;
+done
+echo
diff --git a/bin/colortest256 b/bin/colortest256
new file mode 100755 (executable)
index 0000000..9f97c73
--- /dev/null
@@ -0,0 +1,53 @@
+#!/bin/bash
+# https://tldp.org/HOWTO/Bash-Prompt-HOWTO/x329.html
+# https://gist.github.com/XVilka/8346728#gistcomment-3528771
+
+T='::'   # The test text
+
+function echo_block() {
+    local fs=$1
+    local bs=$2
+    echo "   01234567"
+    for (( f = 0; f < 8; f++ )); do
+        echo -en " ${f} "
+        for (( b = 0; b < 8; b++ )); do
+            echo -en "\033[38;5;$((fs+f))m\033[48;5;$((bs+b))m$T\033[0m";
+        done
+        echo
+    done
+}
+
+function print_colors() {
+    local c
+    for (( c = $1; c < $1 + $2; c++)); do
+        echo -en "\033[48;5;${c}m$T\033[0m"
+    done
+    echo
+}
+function colors() {
+    print_colors 0 8
+    print_colors 8 8
+    for (( c = 16; c < 256 - 24; c += 36 )); do
+        print_colors $c 36
+    done
+    print_colors $((256 - 24)) 24
+}
+
+function true_colors() {
+    awk -v term_cols="${width:-$(tput cols || echo 80)}" 'BEGIN{
+        s="/\\";
+        for (colnum = 0; colnum<term_cols; colnum++) {
+            r = 255-(colnum*255/term_cols);
+            g = (colnum*510/term_cols);
+            b = (colnum*255/term_cols);
+            if (g>255) g = 510-g;
+            printf "\033[48;2;%d;%d;%dm", r,g,b;
+            printf "\033[38;2;%d;%d;%dm", 255-r,255-g,255-b;
+            printf "%s\033[0m", substr(s,colnum%2+1,1);
+        }
+        printf "\n";
+    }'
+}
+
+colors
+true_colors