emulate -L zsh -o extendedglob # Function: cvt_256_colors_2_rgb_hex_fmt local E N c local -a T S XC NRGB local -aU RGB for N ({0..255}) { : read -s -t1 -d $'\a' $'c?\e]4;'${N}$';?\a' && XC+=("$N ${c##*;}") } for E ($XC) { S=(${(z)E}) ; T=(${(s./.)S[2]#*:}) NRGB+=("${(l.3..0.)S[1]} ${${T[1]}[1,2]}${${T[2]}[1,2]}${${T[3]}[1,2]}") RGB+=("${${T[1]}[1,2]}${${T[2]}[1,2]}${${T[3]}[1,2]}") } #print -- "XC: $#XC NRGB: $#NRGB RGB: $#RGB" #print -- "$XC[1] $XC[256]" #print -- "$NRGB[1] $NRGB[256]" #print -- "$RGB[1] $RGB[256]" #print -l -- $XC #print -l -- $NRGB #print -l -- $RGB # Next line is just output to see if read command is doing something strange for E (${(ok)parameters}) print -- $E # vim: ts=2 sw=2 sts=2 sta ai et ft=zsh :