aboutsummaryrefslogtreecommitdiff
path: root/colors.sh
diff options
context:
space:
mode:
authorsrdusr <trevorgray@srdusr.com>2023-01-07 14:36:59 +0200
committersrdusr <trevorgray@srdusr.com>2023-01-07 14:36:59 +0200
commit94778c70b8a4396fbee25d7653fa0830803b6d32 (patch)
treecc4b3d274f490095a710bc1afc8eb6b47c9997d9 /colors.sh
parenta035fc7259fb7a8959d3fada42a426f4289e3619 (diff)
downloaddotfiles-94778c70b8a4396fbee25d7653fa0830803b6d32.tar.gz
dotfiles-94778c70b8a4396fbee25d7653fa0830803b6d32.zip
Squashed '.local/bin/scripts/' changes from f797a45..0e48d67
0e48d67 Removed st in favour of alacritty 03be387 Add killandnotify script 966087e Add ffmpeg script f0ca2dd Add colors script git-subtree-dir: .local/bin/scripts git-subtree-split: 0e48d677ccf014c65c1fbb0bc4690737325df678
Diffstat (limited to 'colors.sh')
-rwxr-xr-xcolors.sh78
1 files changed, 78 insertions, 0 deletions
diff --git a/colors.sh b/colors.sh
new file mode 100755
index 0000000..fc1c10c
--- /dev/null
+++ b/colors.sh
@@ -0,0 +1,78 @@
+#!/usr/bin/env bash
+colors=$@
+for (( n=0; n < $colors; n++ )) do
+ printf " [%d] $(tput setaf $n)%s$(tput sgr0)" $n "Hello World!
+"
+done
+PADDING='Padding'
+
+main() {
+ local xterm_start=0 \
+ xterm_width=8 \
+ xterm_height=2
+
+ local cube_start=$((xterm_start + xterm_width * xterm_height)) \
+ cube_width=6 \
+ cube_height=$((6 * 6))
+
+ local greys_start=$((cube_start + cube_width * cube_height)) \
+ greys_width=8 \
+ greys_height=3
+
+ color_block $xterm_start $xterm_width $xterm_height
+ color_block $cube_start $cube_width $cube_height use_padding
+ color_block $greys_start $greys_width $greys_height
+ echo
+}
+
+color_block() {
+ local start=$1 width=$2 height=$3 use_padding=$4
+ local max s color_nums colors
+
+ max=$((start + width * height - 1))
+
+ echo
+ for s in $(seq $start $width $max); do
+ color_nums=$(seq $s $((s + width - 1)))
+ colors="${use_padding:+$PADDING }${color_nums}${use_padding:+ $PADDING}"
+
+ printf '%s%s %s%s\n' \
+ "$(fg_bars $colors)" $ansi_reset \
+ "$(bg_bars $colors)" $ansi_reset
+ done
+}
+
+fg_bars() {
+ for color in $@; do
+ color_bar ansi_fg $color ''
+ done
+}
+
+bg_bars() {
+ for color in $@; do
+ color_bar ansi_bg $color ' '
+ done
+}
+
+color_bar() {
+ local ansi=$1 color=$2 trail=$3
+
+ if [ "$color" == $PADDING ]; then
+ printf '%s %s' $ansi_reset "$trail"
+ else
+ local color_seq=$($ansi $color)
+ printf '%s %03d%s' $color_seq $color "$trail"
+ fi
+}
+
+ansi_reset=$'\033[0m'
+
+ansi_fg() {
+ printf '\033[38;5;%dm' $1
+}
+
+ansi_bg() {
+ printf '\033[48;5;%dm' $1
+}
+
+main