#!/usr/bin/env bash # spmenu test script # See LICENSE file for copyright and license details. # reset sequence reset='\033[0m' # fg colors v1='\033[0;30m' v2='\033[0;31m' v3='\033[0;32m' v4='\033[0;33m' v5='\033[0;34m' v6='\033[0;35m' v7='\033[0;36m' v8='\033[0;37m' v9='\033[1;30m' v10='\033[1;31m' v11='\033[1;32m' v12='\033[1;33m' v13='\033[1;34m' v14='\033[1;35m' v15='\033[1;36m' v16='\033[1;37m' # bg colors b1='\033[0;40m' b2='\033[0;41m' b3='\033[0;42m' b4='\033[0;43m' b5='\033[0;44m' b6='\033[0;45m' b7='\033[0;46m' b8='\033[0;47m' b9='\033[1;40m' b10='\033[1;41m' b11='\033[1;42m' b12='\033[1;43m' b13='\033[1;44m' b14='\033[1;45m' b15='\033[1;46m' b16='\033[1;47m' cindex=0 l[0]=a l[1]=b l[2]=c l[3]=d l[4]=e l[5]=f l[6]=g l[7]=h l[8]=i l[9]=j l[10]=k l[11]=l l[12]=m l[13]=n l[14]=o l[15]=p l[16]=q l[17]=r l[18]=s l[19]=t l[20]=u l[21]=v l[22]=w l[23]=x l[24]=y l[25]=z protocol='Unknown' [ -n "$DISPLAY" ] && protocol='X11' && protocol_arg="-x11" [ -n "$WAYLAND_DISPLAY" ] && protocol='Wayland' && protocol_arg="-wl" main() { cat << EOF ████████████████████████████████ ████████████████████████████████ ████████████████████████████████ ██████ ██████ ██████ ██████ ██████ ██████ ██████ ███████████████████ ██████ ███████████████████ ██████ ███████████████████ ██████ ██████ ███████████████████████████████ ███████████████████████████████ ███████████████████████████████ EOF printf "${v2}s${v3}p${v4}m${v5}e${v6}n${v7}u${v8} $(${RUNLAUNCHER:-spmenu} -v | sed 's/spmenu-//g') ${reset}(using protocol $protocol)\n\ Press ${v3}↓${reset} or scroll to navigate, Press ${v3}Ctrl + Shift + P${reset} to change theme.\n\n\ 16 foreground colors\n\n\ ${v1}a${v2}b${v3}c${v4}d${v5}e${v6}f${v7}g${v8}h${v9}i${v10}j${v11}k${v12}j${v13}m${v14}n${v15}o${v16}p\n\ \n16 background colors\n\n\ ${b1}\n\ ${b2}\n\ ${b3}\n\ ${b4}\n\ ${b5}\n\ ${b6}\n\ ${b7}\n\ ${b8}\n\ ${b9}\n\ ${b10}\n\ ${b11}\n\ ${b12}\n\ ${b13}\n\ ${b14}\n\ ${b15}\n\ ${b16}\n\ " cindex=0 l[0]=a l[1]=b l[2]=c l[3]=d l[4]=e l[5]=f l[6]=g l[7]=h l[8]=i l[9]=j l[10]=k l[11]=l l[12]=m l[13]=n l[14]=o l[15]=p l[16]=q l[17]=r l[18]=s l[19]=t l[20]=u l[21]=v l[22]=w l[23]=x l[24]=y l[25]=z printf "\n256 foreground colors\n\n" for i in {0..255}; do [ "$cindex" -gt "25" ] && cindex=0 printf "\e[38;5;%dm${l[cindex]}" "$i" (((i+3) % 18)) || printf '\e[0m\n' cindex=$((cindex+1)) done printf "\n\n256 background colors\n\n" for i in {0..255}; do printf "\e[48;5;%dm " "$i" (((i+3) % 18)) || printf '\e[0m\n' done printf "\n\nTrue color foreground colors\n\n" awk 'BEGIN{ for (colnum = 0; colnum < 100; colnum++) { r = 255-(colnum*255/100); g = (colnum*510/100); b = (colnum*255/100); if (g>255) g = 510-g; printf "\033[38;2;%d;%d;%dm%s\033[0m", r,g,b, "a"; i++; } printf "\n"; for (colnum = 0; colnum < 100; colnum++) { r = 255-(colnum*255/100); g = (colnum*510/100); b = (colnum*255/100); if (g>255) g = 510-g; printf "\033[38;2;%d;%d;%dm%s\033[0m", r,g,b, "b"; i++; } printf "\n"; for (colnum = 0; colnum < 100; colnum++) { r = 255-(colnum*255/100); g = (colnum*510/100); b = (colnum*255/100); if (g>255) g = 510-g; printf "\033[38;2;%d;%d;%dm%s\033[0m", r,g,b, "c"; i++; } printf "\n"; }' printf "\nTrue color background colors\n\n" awk 'BEGIN{ for (colnum = 0; colnum < 200; colnum++) { r = 255-(colnum*255/200); g = (colnum*510/200); b = (colnum*255/200); if (g>255) g = 510-g; printf "\033[48;2;%d;%d;%dm%s\033[0m", r,g,b, " "; i++; } printf "\n"; for (colnum = 0; colnum < 200; colnum++) { r = 255-(colnum*255/200); g = (colnum*510/200); b = (colnum*255/200); if (g>255) g = 510-g; printf "\033[48;2;%d;%d;%dm%s\033[0m", r,g,b, " "; i++; } printf "\n"; }' printf "\n\ Formatting\n\n\ abcdefghijklmnopqrstuvwxyz\n\ abcdefghijklmnopqrstuvwxyz - b\n\ abcdefghijklmnopqrstuvwxyz - i\n\ abcdefghijklmnopqrstuvwxyz - s\n\ abcdefghijklmnopqrstuvwxyz - u\n\ abcdefghijklmnopqrstuvwxyz - sub\n\ abcdefghijklmnopqrstuvwxyz - sup\n\ abcdefghijklmnopqrstuvwxyz - tt\n\ abcdefghijklmnopqrstuvwxyz - small\n\ abcdefghijklmnopqrstuvwxyz - big\n\ \n" printf "\n\ Emojis\n\nThe emojis are: Black Square, Red Square and Pirate Flag\n\ ⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛⬛\n\ 🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥🟥\n\ 🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️🏴‍☠️\n\ \n" printf "\nThe End\n" printf "\nIf spmenu displayed 16 colors, 256 colors and true color (full RGB spectrum) as well as various forms of formatted text, everything works fine.\n" printf "Otherwise please file a bug report. Click \033[38;2;00;00;238mhere${reset} to file a bug report.\n" } open_bug_report() { [ -x "$(command -v $BROWSER)" ] && { $BROWSER "https://git.speedie.site/speedie/spmenu/issues" return 0 } [ -x "$(command -v xdg-open)" ] && { xdg-open "https://git.speedie.site/speedie/spmenu/issues" return 0 } return 1 } text="$(main "$@" | ${RUNLAUNCHER:-spmenu} --pretext "https://spmenu.speedie.site" --hide-caret --no-allow-typing --top --lines 9000 $protocol_arg "$@" --columns 1 --prompt "spmenu test script")" printf "%s" "$text" | grep -q "Otherwise please file a bug report." && open_bug_report exit $?