#!/usr/bin/env zsh

function run {
    dunstctl set-paused true
    swayidle -w -C /dev/null \
        timeout 15 'hyprctl dispatch dpms off' resume 'hyprctl dispatch dpms on' &
    local swayidle_pid="${!}"
    swaylock -e ${img_flags}
    kill "${swayidle_pid}"
    hyprctl dispatch dpms on
    dunstctl set-paused false
    fix_eww
}

function fix_eww {
    for bar in ${fix_eww}; do
        eww open "${bar}"
    done
}

local background=false
local fix_eww=()
while [[ "${1}" =~ '^-' ]]; do
    case "${1}" in
        --)
            shift
            break
            ;;
        -f)
            background=true
            ;;
        -b)
            fix_eww+="${2}"
            shift
            ;;
        -*)
            printf "error: unknown flag '%s'\n" "${1}" >&2
            ;;
    esac
    shift
done

(( ${#} != 0 )) && img_flags=(-s fill -i "${1}")

if ${background}; then
    run '${img_flags}' &
else
    run '${img_flags}'
fi
