Last active
October 30, 2021 17:14
-
-
Save godDLL/8dfb9288e116515902342ca6fe03c81c to your computer and use it in GitHub Desktop.
Ansi color cube with 24 grays (240 colors), and a simple 3x3x3 cube with 5-value grayscale ramp (32 colors).
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env fish | |
set -l G1 (seq 232 243) | |
set -l G2 231 15 (seq 255 244) | |
set -l G3 (seq 244 255) 231 | |
switch "$argv[1]" | |
case '-h' '--help' | |
echo 'USAGE: colors-256 [-v|--verbose]' >&2 | |
exit | |
case '-v' '--verbose' | |
echo 'col % go \e[%G'\t'move line,col \e[%;%Hm'\t%ABCD for udrl >&2 | |
echo 'reset pos \e[Hm'\tclear cur \\e\[%Xm\tdel cur \\e\[%Pm >&2 | |
echo reset attrs \\e\[0m\tclear all \\e\[Jm\t\tclear line \\e\[Km >&2 | |
echo set attrs ' \e[*m \e[*;*m \e[*;*;*m' >&2 | |
echo fore \\e\[30-37m\t back \\e\[40-47m\t' 'xterm-fore \\e\[38\;5\;%m' 'xterm-back \\e\[48\;5\;%m >&2 | |
echo fore \\e\[90-97m\t back \\e\[100-107m\treset-fore \\e\[39m\treset-back \\e\[49m >&2 | |
echo -e attrs\t \e\[1m1\e\[0m bold\t\e\[2m2\e\[0m dim\t\e\[3m3\e\[0m slant\t\e\[4m4\e\[0m under\t5 blink\t\e\[7m7\e\[0m inv\t8 n/a\t\e\[9m9\e\[0m strike >&2 | |
set N '+' | |
echo >&2 | |
for X in 16 0 $G1 $G2 | |
if test 244 -gt "$X" | |
switch "$X" | |
case 231 15 | |
if test 231 -eq "$X" | |
echo -ne \n'\e[38;5;16m\e[48;5;'$X'm' $X \e\[m | |
else | |
echo -ne '\e[38;5;16m\e[48;5;'$X'm \e[2m?\e[0m\e[38;5;16m\e[48;5;'$X'm'$X \e\[m | |
end | |
case 0 | |
echo -ne '\e[38;5;15m\e[48;5;'$X'm \e[2m?\e[0m\e[38;5;15m\e[48;5;'$X'm'$X \e\[m | |
case 16 | |
echo -ne '\e[38;5;15m\e[48;5;'$X'm '$X \e\[m | |
case '*' | |
echo -ne '\e[38;5;15m\e[48;5;'$X'm' $X \e\[m | |
end #switch | |
else | |
echo -ne '\e[38;5;16m\e[48;5;'$X'm' $X \e\[m | |
end | |
end | |
echo \n | |
set -l V3_1 16 18 21 - 28 32 39 46 49 51 | |
set -l V3_2 124 90 93 - 136 139 141 154 157 195 | |
set -l V3_3 196 198 201 - 208 211 219 226 229 231 | |
echo -en "\e[5m" | |
set -l FG 231 | |
for X in $V3_1 | |
if test "+-" = "+$X" | |
set FG 0 | |
continue | |
end | |
echo -ne '\e[38;5;'$FG'm\e[48;5;'$X'm '$X' \e[49m' | |
end | |
echo | |
for X in $V3_1 | |
if test "+-" = "+$X" | |
continue | |
end | |
echo -ne '\e[48;5;'$X'm \e[49m' | |
end | |
echo | |
set -l FG 231 | |
for X in $V3_2 | |
if test "+-" = "+$X" | |
set FG 0 | |
continue | |
end | |
if test 2 -eq (string length -- "$X") | |
echo -ne '\e[38;5;'$FG'm\e[48;5;'$X'm '$X' \e[49m' | |
else | |
echo -ne '\e[38;5;'$FG'm\e[48;5;'$X'm'$X' \e[49m' | |
end | |
end | |
echo | |
for X in $V3_2 | |
if test "+-" = "+$X" | |
continue | |
end | |
echo -ne '\e[48;5;'$X'm \e[49m' | |
end | |
echo | |
set -l FG 231 | |
for X in $V3_3 | |
if test "+-" = "+$X" | |
set FG 16 | |
continue | |
end | |
echo -ne '\e[38;5;'$FG'm\e[48;5;'$X'm'$X' \e[49m' | |
end | |
echo | |
for X in $V3_3 | |
if test "+-" = "+$X" | |
continue | |
end | |
echo -ne '\e[48;5;'$X'm \e[49m' | |
end | |
echo -e '\e[0m' | |
case '*' | |
end #switch | |
set -l C (seq 16 231) | |
set -l P (seq 0 7) | |
set -l Q (seq 8 15) | |
set -l W 16 196 46 226 21 201 51 231 | |
if test -z "$N" | |
for X in 16 $G1 $G3 | |
echo -ne '\e[48;5;'$X'm \e[49m' | |
end | |
else | |
echo | |
for X in 16 234 238 244 | |
if test 2 -eq (string length -- "$X") | |
echo -ne '\e[38;5;231m\e[48;5;'$X'm ' $X \e\[m | |
else | |
echo -ne '\e[38;5;231m\e[48;5;'$X'm '$X \e\[m | |
end | |
end #for | |
for X in 249 254 231 | |
echo -ne '\e[38;5;16m\e[48;5;'$X'm' $X \e\[m | |
end #for | |
echo | |
end | |
echo | |
for X in $C | |
echo -ne '\e[48;5;'$X'm \e[49m' | |
if test 0 -eq (math -s0 "($X -15) % 36") | |
if test -n "$N" | |
echo -n ' '(math -s0 "$X -35")-$X | |
end | |
echo | |
end | |
end | |
echo | |
for X in $P | |
if test -z "$N" | |
echo -ne '\e[97;4'$X'm \e[49m' | |
else | |
echo -ne '\e[97;4'$X'm ' $X ' \e[m' | |
end | |
end | |
echo | |
for X in $W | |
if test -z "$N" | |
echo -ne '\e[38;5;231m\e[48;5;'$X'm \e[49m' | |
else | |
if test 2 -eq (string length -- "$X") | |
echo -ne '\e[38;5;231m\e[48;5;'$X'm ' $X' \e[m' | |
else | |
echo -ne '\e[38;5;16m\e[48;5;'$X'm '$X '\e[m' | |
end | |
end | |
end | |
echo | |
for X in $Q | |
if test -z "$N" | |
echo -ne '\e[48;5;'$X'm \e[49m' | |
else | |
if test 9 -ge "$X" | |
echo -ne '\e[38;5;16m\e[48;5;'$X'm ' $X ' \e[m' | |
else | |
echo -ne '\e[38;5;16m\e[48;5;'$X'm '$X ' \e[m' | |
end | |
end | |
end | |
echo | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
asciinema.org/a/438882
License MIT, free to do whatever. Yours to fuck up.