Skip to content

Instantly share code, notes, and snippets.

@azriel91
Last active January 10, 2023 03:41
Show Gist options
  • Save azriel91/60b8569b7b967c087bdc8050eb9bc1d1 to your computer and use it in GitHub Desktop.
Save azriel91/60b8569b7b967c087bdc8050eb9bc1d1 to your computer and use it in GitHub Desktop.
Prints ANSI colours to the console so that it is easily readable, and fits in one screen
#! /bin/bash
#
# ansi colours
# basic
printf '\e[1mbasic:\e[0m\n'
for code in {0..15}
do
if [[ $(echo "$code % 8" | bc) -ge 1 ]]
then
# darken text
printf '\e[30;1m\e[48;5;%dm %3d \e[0m' $code $code
else
printf '\e[48;5;%dm %3d \e[0m' $code $code
fi
if [[ $(echo "$((code + 1)) % 8" | bc) -eq 0 ]]
then printf '\n'
fi
done
printf '\n'
# palette
printf '\e[1mpalette:\e[0m\n'
#
# for base in {16..196..36}
# do
# for offset in {0..35}
# do
# code=$(($base + $offset))
# printf '\e[48;5;%dm %3d \e[0m' $code $code
# if [[][ $(echo "$((offset + 1)) % 6" | bc) -eq 0 ]]
# then printf '\n'
# fi
# done
# done
# palette condensed
colour_count_total=216 # 232 max code - 16 basic
palette_colour_count=36 # 36 colours in a palette
palette_column_count=3
palette_row_colour_count=108 # 36 * 3
palette_row_count=2 # ceiling of:
# ($colour_count_total - $palette_row_colour_count)
# divided by
# ($palette_column_count * $palette_colour_count)
#
# = ceil((216 - 108) / (3 * 36)) + 1
# = ceil(108 / 108) + 1
# = ceil(0.5) + 1
# = 2
for palette_row in {0..1} # $(($palette_row_count - 1))
do
for row_offset in {0..5}
do
for palette_col in {0..2} # $(($palette_column_count - 1))
do
base=$(echo "$palette_col * 36 + $row_offset * 6 + $palette_row * $palette_row_colour_count + 16" | bc)
for col_offset in {0..5}
do
code=$(($base + $col_offset))
# colours go up to 232
if [[ $code -ge 232 ]]; then break; fi
if [[ $(echo "$palette_row * $palette_col + $row_offset * $col_offset + $row_offset + $col_offset" | bc) -ge 3 ]]
then
# darken text
printf '\e[30;1m\e[48;5;%dm %3d \e[0m' $code $code
else
printf '\e[48;5;%dm %3d \e[0m' $code $code
fi
done
# separate palettes
printf ' '
done
printf '\n'
done
printf '\n'
done
# greys
printf '\e[1mgreys:\e[0m\n'
for offset in {0..11}
do
base=232
code=$(($base + $offset))
printf '\e[48;5;%dm %3d \e[0m' $code $code
done
printf '\n'
for offset in {12..23}
do
base=232
code=$(($base + $offset))
printf '\e[30;1m\e[48;5;%dm %3d \e[0m' $code $code
done
printf '\n'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment