#!/bin/bash

options=""
while [ "${1::1}" = "-" ]; do options="$options$1 "; shift; done
[ -z "$options" ] && options="-f "
options="${options::-1}"

parameters="$@"
[[ -z "$@" ]] && parameters="$(yad --center --title=$"Image Selection" --window-icon=$HOME/.icons/eog_org.gnome.eog.png --width=800 --height=600 --file --multiple --filename=$HOME/Bilder --file-filter $"Graphic Files "" | *.jpg *.jpeg *.png *.svg *.webp *.JPG *.JPEG *.PNG *.SVG *.WEBP" --file-filter "*.jpg" --file-filter "*.png" --file-filter "*.svg" --file-filter "*.webp" --separator=$'\n' --button=$"Cancel":1 --button="OK":0)" && $0 $options $parameters && exit 0

parameters=$(quote-files-in-string $parameters)
IFS=$'\n'
files=(); k=0
until [ -z "${parameters// /}" ]; do
    param=$(echo "$parameters" | sed -E 's~(\"[^\"]*\").*~\1~; s~^ *~~')
    parameters=$(echo ${parameters/$param/})
    param=${param//\"/} #"
    files[$k]="$param"
    ((k++))
done
[ ${#files[@]} -eq 0 ] && exit 0

gsettings set org.gnome.desktop.background picture-uri ''
bg_pic_pre=\'\'
/usr/bin/eog ${options} ${files[@]} &
dim=$(xdpyinfo | grep dimensions)
v_dim=${dim#*x}	
v_dim=${v_dim%% *}

while [[ ! $(wmctrl -l) =~ \.png|\.PNG|\.jpg|\.jpeg|\.JPG|\.JPEG|\.gif|\.GIF|\.webp|\.WEBP ]]; do sleep 1; done
wins="$(wmctrl -lG)"
while [[ $wins =~ \.png|\.PNG|\.jpg|\.jpeg|\.JPG|\.JPEG|\.gif|\.GIF|\.webp|\.WEBP ]]; do
   if [ -z "$(echo "$wins" | grep -iE "$v_dim.*\.png|$v_dim.*\.jpg|$v_dim.*\.jpeg|$v_dim.*\.gif|$v_dim.*\.webp")" ]; then
	break
    fi
    sleep 1
    wins="$(wmctrl -lG)"
done
# killall /usr/bin/eog

bg_pic="$(gsettings get org.gnome.desktop.background picture-uri)"

if [[ "$bg_pic_pre" != "$bg_pic" ]]; then
    bg_pic="${bg_pic//file:\/\//}"
    bg_pic="${bg_pic//\'/}"  #'
    bg_pic="${bg_pic//\%20/ }"
    set-wallpaper -f "$bg_pic"
fi
