set -e
BG_COLOR='#b2b2a0'
-BG_IMAGE=$(< "$FILE_WALLPAPER_CURR")
#xsetroot -solid "$BG_COLOR"
hsetroot -solid "$BG_COLOR" # Because xsetroot is incompatible with compton.
-feh --bg-scale "$BG_IMAGE"
+
+if test -f "$FILE_WALLPAPER_CURR"
+then
+ bg_image=$(< "$FILE_WALLPAPER_CURR")
+ feh --bg-scale "$bg_image"
+fi
set -e
-awk 'NR == 2 {sub("^" $1 " +" $2 " +" $3 " +", ""); print}' ~/.fehbg | xargs sha256sum >> "$FILE_WALLPAPER_FAVS"
+case "$1" in
+ '')
+ current_wallpaper_file=$(
+ awk '
+ NR == 2 {
+ if (NF > 3) {
+ # XXX Assume feh wrote a N>4-field command line, like:
+ # feh --no-fehbg --bg-scale $file
+ sub("^" $1 " +" $2 " +" $3 " +", "")
+ } else if (NF < 4) {
+ # XXX Assume feh wrote a N<4-field command line, like:
+ # feh --bg-scale $file
+ sub("^" $1 " +" $2 " +", "")
+ } else {
+ printf "[error] Unexpected number of fields in ~/.fehbg command: %s\n" $0 > "/dev/stderr"
+ exit 1
+ }
+ print
+ exit 0
+ }
+ ' \
+ ~/.fehbg \
+ | xargs # Unquote the filename, which feh puts in single quotes.
+ );;
+ *)
+ current_wallpaper_file="$1"
+esac
+
+sha256sum "$current_wallpaper_file" >> "$FILE_WALLPAPER_FAVS"
sort -u "$FILE_WALLPAPER_FAVS" | sponge "$FILE_WALLPAPER_FAVS"
(( i = (i + 1) % n ));;
CMD_FAVORITE_ADD)
printf 'Adding to favorites set: "%s"\n' "$path" >&2
- wallpaper_fav;;
+ wallpaper_fav "$path";;
CMD_FAVORITE_REMOVE)
printf 'Removing from favorites set: "%s"\n' "$path" >&2
digest=$(sha256sum "$path" | awk '{print $1}')