#!/bin/bash PIDFILE="/var/run/user/$UID/bg.pid" # Declare PIDs array declare -a PIDs _screen() { # g specify geometry heightxwidth+xcoord+ycoord # ni Ignore Input # ov For Desktop background # fs fullscreen # vo=gpu gpu accelerated video output # hwdec=vdpau use vdpau for gpu acceleration xwinwrap -ov -ni -g "$1" -- mpv -fs\ --no-stop-screensaver\ --vo=gpu --hwdec=vaapi\ --loop-file --no-audio --no-osc --no-osd-bar\ -wid WID --no-input-default-bindings\ "$2" & # Needs more testing not in fullscreen mode #xwinwrap -ov -ni -g "$1" -- sxiv "$2" -f -b -a -e WID & PIDs+=($!) } while read p; do [[ $(ps -p "$p" -o comm=) == "xwinwrap" ]] && kill -9 "$p"; done < $PIDFILE sleep 0.5 for i in $(xrandr -q | grep ' connected' | grep -oP '\d+x\d+\+\d+\+\d+') do _screen "$i" "$1" done printf "%s\n" "${PIDs[@]}" > $PIDFILE