Skip to content

Instantly share code, notes, and snippets.

@bollovan
Created August 22, 2011 21:57

Revisions

  1. bollovan created this gist Aug 22, 2011.
    346 changes: 346 additions & 0 deletions color
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,346 @@
    #!/bin/zsh

    # ANSI Color -- use these variables to easily have different color
    # and format output. Make sure to output the reset sequence after
    # colors (f = foreground, b = background), and use the 'off'
    # feature for anything you turn on.

    initializeANSI()
    {
    esc=""
    blackf="${esc}[30m"; redf="${esc}[31m"; greenf="${esc}[32m"
    yellowf="${esc}[33m" bluef="${esc}[34m"; purplef="${esc}[35m"
    cyanf="${esc}[36m"; whitef="${esc}[37m"

    blackb="${esc}[40m"; redb="${esc}[41m"; greenb="${esc}[42m"
    yellowb="${esc}[43m" blueb="${esc}[44m"; purpleb="${esc}[45m"
    cyanb="${esc}[46m"; whiteb="${esc}[47m"

    boldon="${esc}[1m"; boldoff="${esc}[22m"
    italicson="${esc}[3m"; italicsoff="${esc}[23m"
    ulon="${esc}[4m"; uloff="${esc}[24m"
    invon="${esc}[7m"; invoff="${esc}[27m"

    reset="${esc}[0m"
    }

    # note in this first use that switching colors doesn't require a reset
    # first - the new color overrides the old one.

    initializeANSI

    case "$1" in
    pacman)
    cat << EOF
    ${yellowf} ▄███████▄${reset} ${redf} ▄██████▄${reset} ${greenf} ▄██████▄${reset} ${bluef} ▄██████▄${reset} ${purplef} ▄██████▄${reset} ${cyanf} ▄██████▄${reset}
    ${yellowf}▄█████████▀▀${reset} ${redf}${whitef}█▀█${redf}██${whitef}█▀█${redf}██▄${reset} ${greenf}${whitef}█▀█${greenf}██${whitef}█▀█${greenf}██▄${reset} ${bluef}${whitef}█▀█${bluef}██${whitef}█▀█${bluef}██▄${reset} ${purplef}${whitef}█▀█${purplef}██${whitef}█▀█${purplef}██▄${reset} ${cyanf}${whitef}█▀█${cyanf}██${whitef}█▀█${cyanf}██▄${reset}
    ${yellowf}███████▀${reset} ${redf}${whitef}▄▄█${redf}██${whitef}▄▄█${redf}███${reset} ${greenf}${whitef}▄▄█${greenf}██${whitef}▄▄█${greenf}███${reset} ${bluef}${whitef}▄▄█${bluef}██${whitef}▄▄█${bluef}███${reset} ${purplef}${whitef}▄▄█${purplef}██${whitef}▄▄█${purplef}███${reset} ${cyanf}${whitef}▄▄█${cyanf}██${whitef}▄▄█${cyanf}███${reset}
    ${yellowf}███████▄${reset} ${redf}████████████${reset} ${greenf}████████████${reset} ${bluef}████████████${reset} ${purplef}████████████${reset} ${cyanf}████████████${reset}
    ${yellowf}▀█████████▄▄${reset} ${redf}██▀██▀▀██▀██${reset} ${greenf}██▀██▀▀██▀██${reset} ${bluef}██▀██▀▀██▀██${reset} ${purplef}██▀██▀▀██▀██${reset} ${cyanf}██▀██▀▀██▀██${reset}
    ${yellowf} ▀███████▀${reset} ${redf}▀ ▀ ▀ ▀${reset} ${greenf}▀ ▀ ▀ ▀${reset} ${bluef}▀ ▀ ▀ ▀${reset} ${purplef}▀ ▀ ▀ ▀${reset} ${cyanf}▀ ▀ ▀ ▀${reset}
    ${boldon}${yellowf} ▄███████▄ ${redf} ▄██████▄ ${greenf} ▄██████▄ ${bluef} ▄██████▄ ${purplef} ▄██████▄ ${cyanf} ▄██████▄${reset}
    ${boldon}${yellowf}▄█████████▀▀ ${redf}${whitef}█▀█${redf}██${whitef}█▀█${redf}██▄ ${greenf}${whitef}█▀█${greenf}██${whitef}█▀█${greenf}██▄ ${bluef}${whitef}█▀█${bluef}██${whitef}█▀█${bluef}██▄ ${purplef}${whitef}█▀█${purplef}██${whitef}█▀█${purplef}██▄ ${cyanf}${whitef}█▀█${cyanf}██${whitef}█▀█${cyanf}██▄${reset}
    ${boldon}${yellowf}███████▀ ${redf}${whitef}▄▄█${redf}██${whitef}▄▄█${redf}███ ${greenf}${whitef}▄▄█${greenf}██${whitef}▄▄█${greenf}███ ${bluef}${whitef}▄▄█${bluef}██${whitef}▄▄█${bluef}███ ${purplef}${whitef}▄▄█${purplef}██${whitef}▄▄█${purplef}███ ${cyanf}${whitef}▄▄█${cyanf}██${whitef}▄▄█${cyanf}███${reset}
    ${boldon}${yellowf}███████▄ ${redf}████████████ ${greenf}████████████ ${bluef}████████████ ${purplef}████████████ ${cyanf}████████████${reset}
    ${boldon}${yellowf}▀█████████▄▄ ${redf}██▀██▀▀██▀██ ${greenf}██▀██▀▀██▀██ ${bluef}██▀██▀▀██▀██ ${purplef}██▀██▀▀██▀██ ${cyanf}██▀██▀▀██▀██${reset}
    ${boldon}${yellowf} ▀███████▀ ${redf}▀ ▀ ▀ ▀ ${greenf}▀ ▀ ▀ ▀ ${bluef}▀ ▀ ▀ ▀ ${purplef}▀ ▀ ▀ ▀ ${cyanf}▀ ▀ ▀ ▀${reset}
    EOF
    ;;

    spaceinvaders)
    cat << EOF
    ${boldon}${redf}▀▄ ▄▀ ${reset} ${boldon}${greenf}▄▄▄████▄▄▄ ${reset} ${boldon}${yellowf} ▄██▄ ${reset} ${boldon}${bluef}▀▄ ▄▀ ${reset} ${boldon}${purplef}▄▄▄████▄▄▄ ${reset} ${boldon}${cyanf} ▄██▄ ${reset}
    ${boldon}${redf}▄█▀███▀█▄ ${reset} ${boldon}${greenf}███▀▀██▀▀███${reset} ${boldon}${yellowf}▄█▀██▀█▄${reset} ${boldon}${bluef}▄█▀███▀█▄ ${reset} ${boldon}${purplef}███▀▀██▀▀███${reset} ${boldon}${cyanf}▄█▀██▀█▄${reset}
    ${boldon}${redf}█▀███████▀█${reset} ${boldon}${greenf}▀▀▀██▀▀██▀▀▀${reset} ${boldon}${yellowf}▀▀█▀▀█▀▀${reset} ${boldon}${bluef}█▀███████▀█${reset} ${boldon}${purplef}▀▀▀██▀▀██▀▀▀${reset} ${boldon}${cyanf}▀▀█▀▀█▀▀${reset}
    ${boldon}${redf}▀ ▀▄▄ ▄▄▀ ▀${reset} ${boldon}${greenf}▄▄▀▀ ▀▀ ▀▀▄▄${reset} ${boldon}${yellowf}▄▀▄▀▀▄▀▄${reset} ${boldon}${bluef}▀ ▀▄▄ ▄▄▀ ▀${reset} ${boldon}${purplef}▄▄▀▀ ▀▀ ▀▀▄▄${reset} ${boldon}${cyanf}▄▀▄▀▀▄▀▄${reset}
    ${redf}▀▄ ▄▀ ${reset} ${greenf}▄▄▄████▄▄▄ ${reset} ${yellowf} ▄██▄ ${reset} ${bluef}▀▄ ▄▀ ${reset} ${purplef}▄▄▄████▄▄▄ ${reset} ${cyanf} ▄██▄ ${reset}
    ${redf}▄█▀███▀█▄ ${reset} ${greenf}███▀▀██▀▀███${reset} ${yellowf}▄█▀██▀█▄${reset} ${bluef}▄█▀███▀█▄ ${reset} ${purplef}███▀▀██▀▀███${reset} ${cyanf}▄█▀██▀█▄${reset}
    ${redf}█▀███████▀█${reset} ${greenf}▀▀▀██▀▀██▀▀▀${reset} ${yellowf}▀▀█▀▀█▀▀${reset} ${bluef}█▀███████▀█${reset} ${purplef}▀▀▀██▀▀██▀▀▀${reset} ${cyanf}▀▀█▀▀█▀▀${reset}
    ${redf}▀ ▀▄▄ ▄▄▀ ▀${reset} ${greenf}▄▄▀▀ ▀▀ ▀▀▄▄${reset} ${yellowf}▄▀▄▀▀▄▀▄${reset} ${bluef}▀ ▀▄▄ ▄▄▀ ▀${reset} ${purplef}▄▄▀▀ ▀▀ ▀▀▄▄${reset} ${cyanf}▄▀▄▀▀▄▀▄${reset}
    ${whitef}${reset}
    ${whitef}${reset}
    ${whitef}${reset}
    ${whitef}▄█▄${reset}
    ${whitef}▄█████████▄${reset}
    ${whitef}▀▀▀▀▀▀▀▀▀▀▀${reset}
    EOF
    ;;

    tank)
    cat << EOF
    ${boldon}${redf}${reset} ${boldon}${greenf}${reset} ${boldon}${yellowf}${reset} ${boldon}${bluef}${reset} ${boldon}${purplef}${reset} ${boldon}${cyanf}${reset}
    ${boldon}${redf}▄▄ █ ▄▄${reset} ${boldon}${greenf}▄▄ █ ▄▄${reset} ${boldon}${yellowf}▄▄ █ ▄▄${reset} ${boldon}${bluef}▄▄ █ ▄▄${reset} ${boldon}${purplef}▄▄ █ ▄▄${reset} ${boldon}${cyanf}▄▄ █ ▄▄${reset}
    ${boldon}${redf}███▀▀▀███${reset} ${boldon}${greenf}███▀▀▀███${reset} ${boldon}${yellowf}███▀▀▀███${reset} ${boldon}${bluef}███▀▀▀███${reset} ${boldon}${purplef}███▀▀▀███${reset} ${boldon}${cyanf}███▀▀▀███${reset}
    ${boldon}${redf}███ █ ███${reset} ${boldon}${greenf}███ █ ███${reset} ${boldon}${yellowf}███ █ ███${reset} ${boldon}${bluef}███ █ ███${reset} ${boldon}${purplef}███ █ ███${reset} ${boldon}${cyanf}███ █ ███${reset}
    ${boldon}${redf}██ ▀▀▀ ██${reset} ${boldon}${greenf}██ ▀▀▀ ██${reset} ${boldon}${yellowf}██ ▀▀▀ ██${reset} ${boldon}${bluef}██ ▀▀▀ ██${reset} ${boldon}${purplef}██ ▀▀▀ ██${reset} ${boldon}${cyanf}██ ▀▀▀ ██${reset}
    ${redf}${reset} ${greenf}${reset} ${yellowf}${reset} ${bluef}${reset} ${purplef}${reset} ${cyanf}${reset}
    ${redf}▄▄ █ ▄▄${reset} ${greenf}▄▄ █ ▄▄${reset} ${yellowf}▄▄ █ ▄▄${reset} ${bluef}▄▄ █ ▄▄${reset} ${purplef}▄▄ █ ▄▄${reset} ${cyanf}▄▄ █ ▄▄${reset}
    ${redf}███▀▀▀███${reset} ${greenf}███▀▀▀███${reset} ${yellowf}███▀▀▀███${reset} ${bluef}███▀▀▀███${reset} ${purplef}███▀▀▀███${reset} ${cyanf}███▀▀▀███${reset}
    ${redf}███ █ ███${reset} ${greenf}███ █ ███${reset} ${yellowf}███ █ ███${reset} ${bluef}███ █ ███${reset} ${purplef}███ █ ███${reset} ${cyanf}███ █ ███${reset}
    ${redf}██ ▀▀▀ ██${reset} ${greenf}██ ▀▀▀ ██${reset} ${yellowf}██ ▀▀▀ ██${reset} ${bluef}██ ▀▀▀ ██${reset} ${purplef}██ ▀▀▀ ██${reset} ${cyanf}██ ▀▀▀ ██${reset}
    EOF
    ;;

    fence)
    cat << EOF
    ${redf}╔╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╗ ${greenf}╔╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╗ ${yellowf}╔╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╗
    ${boldon}${redf}╚╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╝ ${greenf}╚╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╝ ${yellowf}╚╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╝${reset}
    ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■
    ${bluef}╔╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╗ ${purplef}╔╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╗ ${cyanf}╔╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╦╗
    ${boldon}${bluef}╚╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╝ ${purplef}╚╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╝ ${cyanf}╚╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╩╝${reset}
    EOF
    ;;

    blocks)
    cat << EOF
    ${redf}▀ █${reset} ${boldon}${redf}█ ▀${reset} ${greenf}▀ █${reset} ${boldon}${greenf}█ ▀${reset} ${yellowf}▀ █${reset} ${boldon}${yellowf}█ ▀${reset} ${bluef}▀ █${reset} ${boldon}${bluef}█ ▀${reset} ${purplef}▀ █${reset} ${boldon}${purplef}█ ▀${reset} ${cyanf}▀ █${reset} ${boldon}${cyanf}█ ▀${reset}
    ${redf}██${reset} ${boldon}${redf} ██${reset} ${greenf}██${reset} ${boldon}${greenf}██${reset} ${yellowf}██${reset} ${boldon}${yellowf}██${reset} ${bluef}██${reset} ${boldon}${bluef}██${reset} ${purplef}██${reset} ${boldon}${purplef}██${reset} ${cyanf}██${reset} ${boldon}${cyanf}██${reset}
    ${redf}▄ █${reset}${boldon}${redf} █ ▄ ${reset} ${greenf}▄ █ ${reset}${boldon}${greenf}█ ▄${reset} ${yellowf}▄ █ ${reset}${boldon}${yellowf}█ ▄${reset} ${bluef}▄ █ ${reset}${boldon}${bluef}█ ▄${reset} ${purplef}▄ █ ${reset}${boldon}${purplef}█ ▄${reset} ${cyanf}▄ █ ${reset}${boldon}${cyanf}█ ▄${reset}
    EOF
    ;;

    box)
    cat << EOF
    ${redf}▒▒▒▒${reset} ${boldon}${redf}▒▒${reset} ${greenf}▒▒▒▒${reset} ${boldon}${greenf}▒▒${reset} ${yellowf}▒▒▒▒${reset} ${boldon}${yellowf}▒▒${reset} ${bluef}▒▒▒▒${reset} ${boldon}${bluef}▒▒${reset} ${purplef}▒▒▒▒${reset} ${boldon}${purplef}▒▒${reset} ${cyanf}▒▒▒▒${reset} ${boldon}${cyanf}▒▒${reset}
    ${redf}▒▒ ■${reset} ${boldon}${redf}▒▒${reset} ${greenf}▒▒ ■${reset} ${boldon}${greenf}▒▒${reset} ${yellowf}▒▒ ■${reset} ${boldon}${yellowf}▒▒${reset} ${bluef}▒▒ ■${reset} ${boldon}${bluef}▒▒${reset} ${purplef}▒▒ ■${reset} ${boldon}${purplef}▒▒${reset} ${cyanf}▒▒ ■${reset} ${boldon}${cyanf}▒▒${reset}
    ${redf}▒▒ ${reset}${boldon}${redf}▒▒▒▒${reset} ${greenf}▒▒ ${reset}${boldon}${greenf}▒▒▒▒${reset} ${yellowf}▒▒ ${reset}${boldon}${yellowf}▒▒▒▒${reset} ${bluef}▒▒ ${reset}${boldon}${bluef}▒▒▒▒${reset} ${purplef}▒▒ ${reset}${boldon}${purplef}▒▒▒▒${reset} ${cyanf}▒▒ ${reset}${boldon}${cyanf}▒▒▒▒${reset}
    EOF
    ;;

    fade)
    for f in {0..6}; do
    echo -en "\033[$((f+41))m\033[$((f+30))m██▓▒░"
    done
    echo -en "\033[37m██"

    echo -e "\n"

    for f in {0..6}; do
    echo -en "\033[$((f+41))m\033[1;$((f+30))m██▓▒░"
    done
    echo -en "\033[1;37m���"
    echo -e "\033[0m"
    ;;

    eye)
    cat <<EOF
    ${invon}
    ${redf} ▄█ █▄ ${greenf} ▄▄ ▄▄ ${yellowf} ▄▄ ▄▄ ${bluef} ▄▄ ▄▄ ${purplef} ▄▄ ▄▄ ${cyanf} ▄█ █▄
    ${redf} ▄█▀ ▄▄▄ ▀█▄ ${greenf} ▄█▀ ▄▄▄ ▀█▄ ${yellowf} ▄█▀ ▄▄▄ ▀█▄ ${bluef} ▄█▀ ▄▄▄ ▀█▄ ${purplef} ▄█▀ ▄▄▄ ▀█▄ ${cyanf} ▄█▀ ▄▄▄ ▀█▄
    ${redf} ██▄▄██▀██▄▄██ ${greenf} ██▄▄██▀██▄▄██ ${yellowf} ██▄▄██▀██▄▄██ ${bluef} ██▄▄██▀██▄▄██ ${purplef} ██▄▄██▀██▄▄██ ${cyanf} ██▄▄██▀██▄▄██
    ${redf} ██▀▀█████▀▀██ ${greenf} ██▀▀█████▀▀██ ${yellowf} ██▀▀█████▀▀██ ${bluef} ██▀▀█████▀▀██ ${purplef} ██▀▀█████▀▀██ ${cyanf} ██▀▀█████▀▀██
    ${redf} ▀█▄ ▀▀▀ ▄█▀ ${greenf} ▀█▄ ▀▀▀ ▄█▀ ${yellowf} ▀█▄ ▀▀▀ ▄█▀ ${bluef} ▀█▄ ▀▀▀ ▄█▀ ${purplef} ▀█▄ ▀▀▀ ▄█▀ ${cyanf} ▀█▄ ▀▀▀ ▄█▀
    ${redf} ▀█ █▀ ${greenf} ▀▀ ▀▀ ${yellowf} ▀▀ ▀▀ ${bluef} ▀▀ ▀▀ ${purplef} ▀▀ ▀▀ ${cyanf} ▀█ █▀
    ${boldon}${invon}
    ${redf} ▄█ █▄ ${greenf} ▄▄ ▄▄ ${yellowf} ▄▄ ▄▄ ${bluef} ▄▄ ▄▄ ${purplef} ▄▄ ▄▄ ${cyanf} ▄█ █▄
    ${redf} ▄█▀ ▄▄▄ ▀█▄ ${greenf} ▄█▀ ▄▄▄ ▀█▄ ${yellowf} ▄█▀ ▄▄▄ ▀█▄ ${bluef} ▄█▀ ▄▄▄ ▀█▄ ${purplef} ▄█▀ ▄▄▄ ▀█▄ ${cyanf} ▄█▀ ▄▄▄ ▀█▄
    ${redf} ██▄▄██▀██▄▄██ ${greenf} ██▄▄██▀██▄▄██ ${yellowf} ██▄▄██▀██▄▄██ ${bluef} ██▄▄██▀██▄▄██ ${purplef} ██▄▄██▀██▄▄██ ${cyanf} ██▄▄██▀██▄▄██
    ${redf} ██▀▀█████▀▀██ ${greenf} ██▀▀█████▀▀██ ${yellowf} ██▀▀█████▀▀██ ${bluef} ██▀▀█████▀▀██ ${purplef} ██▀▀█████▀▀██ ${cyanf} ██▀▀█████▀▀██
    ${redf} ▀█▄ ▀▀▀ ▄█▀ ${greenf} ▀█▄ ▀▀▀ ▄█▀ ${yellowf} ▀█▄ ▀▀▀ ▄█▀ ${bluef} ▀█▄ ▀▀▀ ▄█▀ ${purplef} ▀█▄ ▀▀▀ ▄█▀ ${cyanf} ▀█▄ ▀▀▀ ▄█▀
    ${redf} ▀█ █▀ ${greenf} ▀▀ ▀▀ ${yellowf} ▀▀ ▀▀ ${bluef} ▀▀ ▀▀ ${purplef} ▀▀ ▀▀ ${cyanf} ▀█ █▀
    ${reset}
    EOF
    ;;

    vader)
    cat <<EOF
    ${redf} ▄████▄ ${greenf} ▄████▄ ${yellowf} ▄████▄ ${bluef} ▄████▄ ${purplef} ▄████▄ ${cyanf} ▄████▄
    ${redf} ██▀▀▀▀██ ${greenf} ██▀▀▀▀██ ${yellowf} ██▀▀▀▀██ ${bluef} ██▀▀▀▀██ ${purplef} ██▀▀▀▀██ ${cyanf} ██▀▀▀▀██
    ${redf} █ █ ${greenf} █ █ ${yellowf} █ █ ${bluef} █ █ ${purplef} █ █ ${cyanf} █ █
    ${redf} █ ▄▀▀▄ █ ${greenf} █ ▄▀▀▄ █ ${yellowf} █ ▄▀▀▄ █ ${bluef} █ ▄▀▀▄ █ ${purplef} █ ▄▀▀▄ █ ${cyanf} █ ▄▀▀▄ █
    ${redf}█ ▄█▬▄▄▬█▄ █ ${greenf}█ ▄█▬▄▄▬█▄ █ ${yellowf}█ ▄█▬▄▄▬█▄ █ ${bluef}█ ▄█▬▄▄▬█▄ █ ${purplef}█ ▄█▬▄▄▬█▄ █ ${cyanf}█ ▄█▬▄▄▬█▄ █
    ${boldon}
    ${redf} ▄████▄ ${greenf} ▄████▄ ${yellowf} ▄████▄ ${bluef} ▄████▄ ${purplef} ▄████▄ ${cyanf} ▄████▄
    ${redf} ██▀▀▀▀██ ${greenf} ██▀▀▀▀██ ${yellowf} ██▀▀▀▀██ ${bluef} ██▀▀▀▀██ ${purplef} ██▀▀▀▀██ ${cyanf} ██▀▀▀▀██
    ${redf} █ █ ${greenf} █ █ ${yellowf} █ █ ${bluef} █ █ ${purplef} █ █ ${cyanf} █ █
    ${redf} █ ▄▀▀▄ █ ${greenf} █ ▄▀▀▄ █ ${yellowf} █ ▄▀▀▄ █ ${bluef} █ ▄▀▀▄ █ ${purplef} █ ▄▀▀▄ █ ${cyanf} █ ▄▀▀▄ █
    ${redf}█ ▄█▬▄▄▬█▄ █ ${greenf}█ ▄█▬▄▄▬█▄ █ ${yellowf}█ ▄█▬▄▄▬█▄ █ ${bluef}█ ▄█▬▄▄▬█▄ █ ${purplef}█ ▄█▬▄▄▬█▄ █ ${cyanf}█ ▄█▬▄▄▬█▄ █
    ${reset}
    EOF
    ;;

    tie)
    cat << EOF
    ${redf} █ █ ${greenf}█ █ ${yellowf}█ █ ${bluef}█ █ ${purplef}█ █ ${cyanf}█ █
    ${redf} █ ▄▄▄ █ ${greenf}█ ▄▄▄ █ ${yellowf}█ ▄▄▄ █ ${bluef}█ ▄▄▄ █ ${purplef}█ ▄▄▄ █ ${cyanf}█ ▄▄▄ █
    ${redf} █▄▄██▀██▄▄█ ${greenf}█▄▄██▀██▄▄█ ${yellowf}█▄▄██▀██▄▄█ ${bluef}█▄▄██▀██▄▄█ ${purplef}█▄▄██▀██▄▄█ ${cyanf}█▄▄██▀██▄▄█
    ${redf} █▀▀█████▀▀█ ${greenf}█▀▀█████▀▀█ ${yellowf}█▀▀█████▀▀█ ${bluef}█▀▀█████▀▀█ ${purplef}█▀▀█████▀▀█ ${cyanf}█▀▀█████▀▀█
    ${redf} █ ▀▀▀ █ ${greenf}█ ▀▀▀ █ ${yellowf}█ ▀▀▀ █ ${bluef}█ ▀▀▀ █ ${purplef}█ ▀▀▀ █ ${cyanf}█ ▀▀▀ █
    ${redf} █ █ ${greenf}█ █ ${yellowf}█ █ ${bluef}█ █ ${purplef}█ █ ${cyanf}█ █
    ${boldon}
    ${redf} █ █ ${greenf}█ █ ${yellowf}█ █ ${bluef}█ █ ${purplef}█ █ ${cyanf}█ █
    ${redf} █ ▄▄▄ █ ${greenf}█ ▄▄▄ █ ${yellowf}█ ▄▄▄ █ ${bluef}█ ▄▄▄ █ ${purplef}█ ▄▄▄ █ ${cyanf}█ ▄▄▄ █
    ${redf} █▄▄██▀██▄▄█ ${greenf}█▄▄██▀██▄▄█ ${yellowf}█▄▄██▀██▄▄█ ${bluef}█▄▄██▀██▄▄█ ${purplef}█▄▄██▀██▄▄█ ${cyanf}█▄▄██▀██▄▄█
    ${redf} █▀▀█████▀▀█ ${greenf}█▀▀█████▀▀█ ${yellowf}█▀▀█████▀▀█ ${bluef}█▀▀█████▀▀█ ${purplef}█▀▀█████▀▀█ ${cyanf}█▀▀█████▀▀█
    ${redf} █ ▀▀▀ █ ${greenf}█ ▀▀▀ █ ${yellowf}█ ▀▀▀ █ ${bluef}█ ▀▀▀ █ ${purplef}█ ▀▀▀ █ ${cyanf}█ ▀▀▀ █
    ${redf} █ █ ${greenf}█ █ ${yellowf}█ █ ${bluef}█ █ ${purplef}█ █ ${cyanf}█ █
    ${reset}
    EOF
    ;;

    mouse)
    cat << EOF
    ${boldon}${redf}█ █ ${reset} ${boldon}${greenf}█ █ ${reset} ${boldon}${yellowf}█ █ ${reset} ${boldon}${bluef}█ █ ${reset} ${boldon}${purplef}█ █ ${reset} ${boldon}${cyanf}█ █ ${reset}
    ${boldon}${redf} ■ ■ ${reset} ${boldon}${greenf} ■ ■ ${reset} ${boldon}${yellowf} ■ ■ ${reset} ${boldon}${bluef} ■ ■ ${reset} ${boldon}${purplef} ■ ■ ${reset} ${boldon}${cyanf} ■ ■ ${reset}
    ${boldon}${redf} =■= ${reset} ${boldon}${greenf} =■= ${reset} ${boldon}${yellowf} =■= ${reset} ${boldon}${bluef} =■= ${reset} ${boldon}${purplef} =■= ${reset} ${boldon}${cyanf} =■= ${reset}
    ${redf}█=@=█ ${reset} ${greenf}█=@=█ ${reset} ${yellowf}█=@=█ ${reset} ${bluef}█=@=█ ${reset} ${purplef}█=@=█ ${reset} ${cyanf}█=@=█ ${reset}
    ${redf} ■ ■ ${reset} ${greenf} ■ ■ ${reset} ${yellowf} ■ ■ ${reset} ${bluef} ■ ■ ${reset} ${purplef} ■ ■ ${reset} ${cyanf} ■ ■ ${reset}
    ${redf} =■= ${reset} ${greenf} =■= ${reset} ${yellowf} =■= ${reset} ${bluef} =■= ${reset} ${purplef} =■= ${reset} ${cyanf} =■= ${reset}
    EOF
    ;;

    face)

    cat << EOF
    ${white}╔══════════════════════════════════════════════════════════════════╗
    ${white}${redf} ▄█ █▄${reset} ${greenf} ▄█ █▄${reset} ${yellowf} ▄█ █▄${reset} ${bluef} ▄█ █▄${reset} ${purplef} ▄█ █▄${reset} ${cyanf} ▄█ █▄${reset} ${white}
    ${white}${boldon}${redf}▄█◄► ◄►█▄${reset} ${boldon}${greenf}▄█◄► ◄►█▄${reset} ${boldon}${yellowf}▄█◄► ◄►█▄${reset} ${boldon}${bluef}▄█◄► ◄►█▄${reset} ${boldon}${purplef}▄█◄► ◄►█▄${reset} ${boldon}${cyanf}▄█◄► ◄►█▄${reset} ${white}
    ${white}${boldon}${redf}▀█  █▀${reset} ${boldon}${greenf}▀█  █▀${reset} ${boldon}${yellowf}▀█  █▀${reset} ${boldon}${bluef}▀█  █▀${reset} ${boldon}${purplef}▀█  █▀${reset} ${boldon}${cyanf}▀█  █▀${reset} ${white}
    ${white}${redf} ▀█ █▀${reset} ${greenf} ▀█ █▀${reset} ${yellowf} ▀█ █▀${reset} ${bluef} ▀█ █▀${reset} ${purplef} ▀█ █▀${reset} ${cyanf} ▀█ █▀${reset} ${white}
    ${white}╚══════════════════════════════════════════════════════════════════╝
    EOF
    ;;

    cthulhu)
    cat << EOF
    ${reset}${blackf}| | | | |${reset}
    ${redf}█ █${reset} ${blackf}|${reset} ${greenf}█ █${reset} ${blackf}|${reset} ${yellowf}█ █${reset} ${blackf}|${reset} ${bluef}█ █${reset} ${blackf}|${reset} ${purplef}█ █${reset} ${blackf}|${reset} ${cyanf}█ █${reset}
    ${redf}███████${reset} ${blackf}|${reset} ${greenf}███████${reset} ${blackf}|${reset} ${yellowf}███████${reset} ${blackf}|${reset} ${bluef}███████${reset} ${blackf}|${reset} ${purplef}███████${reset} ${blackf}|${reset} ${cyanf}███████${reset}
    ${redf}███${boldon}${redb}██${reset}${redf}${boldon}${redb}██${reset}${redf}███${reset} ${blackf}|${reset} ${greenf}███${boldon}${greenb}██${reset}${greenf}${boldon}${greenb}██${reset}${greenf}███${reset} ${blackf}|${reset} ${yellowf}███${boldon}${yellowb}██${reset}${yellowf}${boldon}${yellowb}██${reset}${yellowf}███${reset} ${blackf}|${reset} ${bluef}███${boldon}${blueb}██${reset}${bluef}${boldon}${blueb}██${reset}${bluef}███${reset} ${blackf}|${reset} ${purplef}███${boldon}${purpleb}██${reset}${purplef}${boldon}${purpleb}██${reset}${purplef}███${reset} ${blackf}|${reset} ${cyanf}███${boldon}${cyanb}██${reset}${cyanf}${boldon}${cyanb}██${reset}${cyanf}███${reset}
    ${redf}████${boldon}${redb}${reset}${redf}████${reset} ${blackf}|${reset} ${greenf}████${boldon}${greenb}${reset}${greenf}████${reset} ${blackf}|${reset} ${yellowf}████${boldon}${yellowb}${reset}${yellowf}████${reset} ${blackf}|${reset} ${bluef}████${boldon}${blueb}${reset}${bluef}████${reset} ${blackf}|${reset} ${purplef}████${boldon}${purpleb}${reset}${purplef}████${reset} ${blackf}|${reset} ${cyanf}████${boldon}${cyanb}${reset}${cyanf}████${reset}
    ${redf}█ █ ${boldon}${reset} ${redf}█ █${reset} ${blackf}|${reset} ${greenf}█ █ ${boldon}${reset} ${greenf}█ █${reset} ${blackf}|${reset} ${yellowf}█ █ ${boldon}${reset} ${yellowf}█ █${reset} ${blackf}|${reset} ${bluef}█ █ ${boldon}${reset} ${bluef}█ █${reset} ${blackf}|${reset} ${purplef}█ █ ${boldon}${reset} ${purplef}█ █${reset} ${blackf}|${reset} ${cyanf}█ █ ${boldon}${reset} ${cyanf}█ █${reset}
    ${redf}█ █${reset} ${blackf}|${reset} ${greenf}█ █${reset} ${blackf}|${reset} ${yellowf}█ █${reset} ${blackf}|${reset} ${bluef}█ █${reset} ${blackf}|${reset} ${purplef}█ █${reset} ${blackf}|${reset} ${cyanf}█ █${reset}
    ${blackf}| | | | |${reset}
    EOF
    ;;

    tux)
    tuxbg=${cyanb} # color behind tux
    tuxfg=${blackf} # tux line color

    # tip: auto update your drawings to see changes real-time
    # while true; do (sleep 3s && clear && sh script); done

    cat << EOF
    ${tuxfg}${tuxbg}
    ▄█████▄
    █████████
    ${whiteb}████████▀██${tuxbg}
    ${whiteb}██████████▄██${tuxbg}
    ${whiteb}██▀▀███▀▀████${tuxbg}
    ${whiteb}████ █ ██ ███${tuxbg}
    ${yellowb}█ ████${tuxbg}
    ${yellowb}█ ▄ ████${tuxbg}
    ${yellowb}███▀▀▀▀▀▄${whiteb}▀████${tuxbg}
    ${whiteb}██▀▀▀▀▀▀ ███${tuxbg}
    ▄█${whiteb}▀ █████${tuxbg}
    ${whiteb}███ ██████${tuxbg}
    ${whiteb}███ ██████${tuxbg}
    ${whiteb}█▀██ ██████${tuxbg}
    ${whiteb}█ █ █ ████${tuxbg}
    ${whiteb}█ █ ██ ███${tuxbg}
    ${whiteb}██ ▀ █▀ ████${tuxbg}
    ${whiteb}███ ████${tuxbg}
    ${whiteb}█████ ███ ███${tuxbg}
    ${yellowb}█▀▀███${whiteb} █████████${tuxbg}
    ${yellowb}█ ███${whiteb}${yellowb}▀ ████ ▀█${tuxbg}
    ▄█${yellowb}▀ ████${whiteb}${yellowb} ▀ █${tuxbg}
    ${yellowb} ████${whiteb} █ █${yellowb} ██${tuxbg}
    ${yellowb} ██${whiteb} █ █${yellowb} ▀█${tuxbg}
    ${yellowb}${whiteb} █ █${yellowb}${tuxbg}
    ${yellowb} ███████████${yellowb}${tuxbg}
    ${yellowb}▄ █${tuxbg} ▀▀▀▀▀▀▀ █${yellowb}${tuxbg}
    ▀▀▀▀▀${yellowb}▄▄▄█${tuxbg}▀ ▀${yellowb}▄ █${tuxbg}
    ▀▀▀▀${tuxbg}
    ${reset}
    EOF
    ;;


    linesv)

    cat << EOF
    RED GREEN YELLOW BLUE MAGENTA CYAN
    ${redf}▆▆▆▆▆▆▆▆▆▆${reset} ${greenf}▆▆▆▆▆▆▆▆▆▆${reset} ${yellowf}▆▆▆▆▆▆▆▆▆▆${reset} ${bluef}▆▆▆▆▆▆▆▆▆▆${reset} ${purplef}▆▆▆▆▆▆▆▆▆▆${reset} ${cyanf}▆▆▆▆▆▆▆▆▆▆${reset}
    ${boldon}${blackf} :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::${reset}
    ${boldon}${redf}▆▆▆▆▆▆▆▆▆▆${reset} ${boldon}${greenf}▆▆▆▆▆▆▆▆▆▆${reset} ${boldon}${yellowf}▆▆▆▆▆▆▆▆▆▆${reset} ${boldon}${bluef}▆▆▆▆▆▆▆▆▆▆${reset} ${boldon}${purplef}▆▆▆▆▆▆▆▆▆▆${reset} ${boldon}${cyanf}▆▆▆▆▆▆▆▆▆▆${reset}
    EOF
    ;;

    lines)

    cat << EOF
    ${redf}▆▆▆▆▆▆▆▆▆▆${reset} ${greenf}▆▆▆▆▆▆▆▆▆▆${reset} ${yellowf}▆▆▆▆▆▆▆▆▆▆${reset} ${bluef}▆▆▆▆▆▆▆▆▆▆${reset} ${purplef}▆▆▆▆▆▆▆▆▆▆${reset} ${cyanf}▆▆▆▆▆▆▆▆▆▆${reset}
    ${boldon}${blackf} :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::${reset}
    ${boldon}${redf}▆▆▆▆▆▆▆▆▆▆${reset} ${boldon}${greenf}▆▆▆▆▆▆▆▆▆▆${reset} ${boldon}${yellowf}▆▆▆▆▆▆▆▆▆▆${reset} ${boldon}${bluef}▆▆▆▆▆▆▆▆▆▆${reset} ${boldon}${purplef}▆▆▆▆▆▆▆▆▆▆${reset} ${boldon}${cyanf}▆▆▆▆▆▆▆▆▆▆${reset}
    EOF
    ;;

    numbers)
    cat <<EOF
    ${blackf}█████ ${redf}${greenf}█████ ${yellowf}█████ ${bluef}█ █ ${purplef}█████ ${cyanf}█████ ${whitef}█████
    ${blackf}█ █ ${redf}${greenf}${yellowf}${bluef}█ █ ${purplef}${cyanf}${whitef}
    ${blackf}█ █ █ ${redf}${greenf}█████ ${yellowf}█████ ${bluef}█████ ${purplef}█████ ${cyanf}█████ ${whitef}
    ${boldon}${blackf}█ █ ${redf}${greenf}${yellowf}${bluef}${purplef}${cyanf}█ █ ${whitef}
    ${boldon}${blackf}█████ ${redf}${greenf}█████ ${yellowf}█████ ${bluef}${purplef}█████ ${cyanf}█████ ${whitef}
    ${reset}
    EOF
    ;;

    stair)
    cat << EOF
    ${boldon}${blackf}| | | | |${reset}
    ${redf}██████${reset} ${boldon}${redf}██${reset} ${boldon}${blackf}|${reset} ${greenf}██████${reset} ${boldon}${greenf}██${reset} ${boldon}${blackf}|${reset} ${yellowf}██████${reset} ${boldon}${yellowf}██${reset} ${boldon}${blackf}|${reset} ${bluef}██████${reset} ${boldon}${bluef}██${reset} ${boldon}${blackf}|${reset} ${purplef}██████${reset} ${boldon}${purplef}██${reset} ${boldon}${blackf}|${reset} ${cyanf}██████${reset} ${boldon}${cyanf}██${reset}
    ${redf}██${reset} ${boldon}${redf}██${reset} ${boldon}${blackf}|${reset} ${greenf}██${reset} ${boldon}${greenf}██${reset} ${boldon}${blackf}|${reset} ${yellowf}██${reset} ${boldon}${yellowf}██${reset} ${boldon}${blackf}|${reset} ${bluef}██${reset} ${boldon}${bluef}██${reset} ${boldon}${blackf}|${reset} ${purplef}██${reset} ${boldon}${purplef}██${reset} ${boldon}${blackf}|${reset} ${cyanf}██${reset} ${boldon}${cyanf}██${reset}
    ${redf}██ ${reset} ${boldon}${redf}██████${reset} ${boldon}${blackf}|${reset} ${greenf}██ ${reset} ${boldon}${greenf}██████${reset} ${boldon}${blackf}|${reset} ${yellowf}██ ${reset} ${boldon}${yellowf}██████${reset} ${boldon}${blackf}|${reset} ${bluef}██ ${reset} ${boldon}${bluef}██████${reset} ${boldon}${blackf}|${reset} ${purplef}██ ${reset} ${boldon}${purplef}██████${reset} ${boldon}${blackf}|${reset} ${cyanf}██ ${reset} ${boldon}${cyanf}██████${reset}
    ${boldon}${blackf}| | | | |${reset}
    EOF
    ;;

    dump)
    colors=($(xrdb -query | sed -n 's/.*color\([0-9]\)/\1/p' | sort -nu | cut -f2))

    echo -e "\e[1;37m
    Black Red Green Yellow Blue Magenta Cyan White
    ──────────────────────────────────────────────────────────────────────\e[0m"
    for i in {0..7}; echo -en "\e[$((30+$i))m $colors[i+1] \e[0m"; echo
    for i in {8..15}; echo -en "\e[1;$((22+$i))m $colors[i+1] \e[0m"; echo -e "\n"
    ;;

    *)
    echo "pacman spaceinvaders tank fence blocks box fade eye vader tie mouse face cthulhu stair dump"
    ;;
    esac