Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ## loads $HOME/.config/gcolors.conf
- ## supports mtPaint and GIMP palette formats (read/write)
- ## remembers last used color, window size and location
- if ! [ -f $HOME/.config/gcolors.conf ] ; then
- cp /usr/share/X11/rgb.txt $HOME/.config/gcolors.conf
- fi
- palettefile="$HOME/.config/gcolors.conf"
- [ "$1" != "" -a -f "$1" ] && palettefile=$1
- export palettefile
- export geofile=/tmp/yadcol_geometry.txt valfile=/tmp/yadcol_lastused.txt
- function savegeo {
- WINDOWID=$(xprop -root _NET_ACTIVE_WINDOW)
- WINDOWID=${WINDOWID##* }
- XWININFO=$(xwininfo -id $WINDOWID)
- set -- ${@} ${XWININFO#* X: }
- AX=$1 AY=$5 RX=$9 RY=${13}
- echo -n "${15}x${17}+$((AX-RX))+$((AY-RY))" > $geofile
- };export -f savegeo
- fileheader=$(grep '^[^ 0-9].*' -o "$palettefile") #extract GIMP file header
- [[ $fileheader ]] && fileheader=${fileheader}$'\n' #keep variable empty if header does not exist
- while : ;do
- colorval=$(yad --color --title="Fake gcolor2 (fallback if binary is missing)" \
- --window-icon=/usr/share/pixmaps/puppy/graphics.svg \
- --init-color="$(< $valfile)" --geometry="$(< $geofile)" \
- --always-print-result --gtk-palette --expand-palette \
- --palette=<(awk "/^[ 0-9]/" "$palettefile") \
- --${disable}button="Save color:bash -c 'savegeo; kill -s SIGUSR2 \$YAD_PID'" \
- --button="Edit gcolors.conf:defaulttexteditor $HOME/.config/gcolors.conf" \
- --button="Quit:9" )
- ret=$?
- case $ret in
- 0) : OK; echo -n $colorval; echo $colorval > "$valfile" ; break ;;
- 1) : SAVE; newname=$(gxmessage -title "Save color" -bg $colorval -c -entrytext 'NewColorName' $'\n\t'"Color $colorval")
- (($?)) || printf '%s%d %d %d\t%s\n%s\n' "$fileheader" 0\x${colorval:1:2} 0\x${colorval:3:2} 0\x${colorval:5:2} "$newname" "$(awk '/^[ 0-9]/' "$palettefile")" > "$palettefile"
- echo $colorval > "$valfile" ;;
- *) : CANCEL; break ;; #ret = 9 or 252
- esac
- done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement