#!/usr/bin/env bash # spmenu test script # See LICENSE file for copyright and license details. PREFIX="${PREFIX:-/usr}" # 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() { 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\ \nFormatting\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\ \n16 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, "█ "; 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"; }' 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.\nOtherwise, please file a bug report.\n" } main "$@" | ${RUNLAUNCHER:-spmenu} --no-alpha --lines 41 $protocol_arg "$@" --columns 1 --prompt "spmenu test script" > /dev/null