Here is a little Bash script you can run on your screen:
#!/bin/bash
function cleanup_() {
printf '\033[?25h' # unhide cursor
stty echo 2>/dev/null
}
trap cleanup_ EXIT
if [ "$COLORTERM" != "truecolor" ]; then
>&2 printf "Sorry, your terminal sucks. Try Konsole or Alacritty.\n"
exit 1
fi
REFRESH_INTERVAL=0.12
declare -r FRAMES=(
" \033[38;2;85;131;54m▄██▄██▄ \n ▄ ██\033[48;2;255;255;255m▄\033[48;2;1;1;1m▄\033[48;2;255;255;255m▄▄\033[48;2;1;1;1m▄\033[0m\033[38;2;85;131;54m▀▄▀\n █ ████\033[48;2;152;78;53m▄▄▄\033[38;2;35;67;249m▄\033[0m\033[38;2;85;131;54m▀ \n \033[38;2;35;67;249m▀▀▀▀▀▀▀▀\033[0m \n"
" \033[38;2;85;131;54m▄██▄██▄ \n▀▄ ██\033[48;2;255;255;255m▄\033[48;2;1;1;1m▄\033[48;2;255;255;255m▄▄\033[48;2;1;1;1m▄\033[0m\033[38;2;85;131;54m▀ \n ▀\033[38;2;35;67;249m▄\033[38;2;85;131;54m████\033[48;2;152;78;53m▄▄▄\033[0m\033[38;2;152;78;53m▀ \033[38;2;85;131;54m█\n \033[38;2;35;67;249m▀▀▀▀▀▀▀▀\033[38;2;85;131;54m▀\033[0m \n"
" \033[38;2;85;131;54m▄▄ ▄▄ \n▄ ▄█\033[48;2;1;1;1m▀\033[48;2;255;255;255m▀▀\033[48;2;1;1;1m▀\033[48;2;255;255;255m▀█\033[0m\033[38;2;85;131;54m \n ▀▄ ▄███\033[48;2;152;78;53m▀▀▀▀\033[0m\033[38;2;85;131;54m ▄\n \033[38;2;35;67;249m▀\033[48;2;85;131;54m▄▄▄▄▄▄▄\033[0m\033[38;2;35;67;249m▄\033[38;2;85;131;54m▄▀\033[0m\n"
" \033[38;2;85;131;54m▄██▄██▄ \n▀▄▀\033[48;2;1;1;1m▄\033[48;2;255;255;255m▄▄\033[48;2;1;1;1m▄\033[48;2;255;255;255m▄██\033[0m\033[38;2;85;131;54m ▄ \n ▀\033[48;2;35;67;249m\033[38;2;152;78;53m▀\033[48;2;85;131;54m▀▀▀ \033[0m\033[38;2;152;78;53m \033[38;2;85;131;54m█ \n \033[38;2;35;67;249m▀▀▀▀▀▀▀▀\033[0m \n"
" \033[38;2;85;131;54m▄██▄██▄ \n ▀\033[48;2;1;1;1m▄\033[48;2;255;255;255m▄▄\033[48;2;1;1;1m▄\033[48;2;255;255;255m▄██\033[0m\033[38;2;85;131;54m ▄▀\n█ \033[38;2;152;78;53m▀\033[48;2;85;131;54m▀▀▀ \033[0m\033[38;2;35;67;249m▄\033[38;2;85;131;54m▀ \n ▀\033[38;2;35;67;249m▀▀▀▀▀▀▀▀\033[0m \n"
" \033[38;2;85;131;54m▄▄ ▄▄ \n █\033[48;2;255;255;255m▀\033[48;2;1;1;1m▀\033[48;2;255;255;255m▀▀\033[48;2;1;1;1m▀█\033[0m\033[38;2;85;131;54m▄ ▄\n▄ \033[48;2;152;78;53m▀▀▀▀███\033[0m\033[38;2;85;131;54m▄ ▄▀ \n▀▄\033[38;2;35;67;249m▄\033[48;2;85;131;54m▄▄▄▄▄▄▄\033[0m\033[38;2;35;67;249m▀\033[0m \n"
)
HEIGHT=4
N_FRAMES=${#FRAMES[@]}
COUNTER=0
stty -echo 2>/dev/null
printf '\033[?25l' # hide cursor
unset EXIT_
while true; do
printf "${FRAMES[$COUNTER]}"
COUNTER=$(((COUNTER+1)%N_FRAMES))
[[ -z $EXIT_ ]] || exit 0
read -t $REFRESH_INTERVAL -n 1 && EXIT_=1;
printf "\033[${HEIGHT}A\r"
done
For a bigger, much better example, see the examples
directory:
You can use my utility fay
to make such animations yourself, or I can do it for you, if you buy me a beer.