#!/bin/bash set -e [ -n "$DEBUG" ] && set -x # check requirements for app in oguri ogurictl; do if ! command -v "$app" >/dev/null; then printf "%s: %s not installed but required\n" "$(basename "$0")" "$app" >&2 exit 1 fi done if ! pgrep oguri >/dev/null 2>&1; then printf "%s: oguri not running, aborting\n" "$(basename "$0")" >&2 exit 1 fi change_bg() { for o in "${OUTPUTS[@]}"; do idx=$((0 + RANDOM % ${#BGS[@]})) ogurictl output "${o}" \ --image "${BGS[${idx}]}" \ --filter best \ --scaling-mode fill \ --anchor center done } logger 'oguri-cycle: changing background(s)' || true BGS_DIR=$HOME/Pictures/wallp/oguri-cycle # OUTPUTS=("$(swq list output | jq -r '..|select(.transform?=="normal")|.name')") readarray OUTPUTS < <(wlr-randr | awk 'BEGIN{name=""} /^\S/{name=$1} /Transform: normal/{printf name}') readarray -d '' BGS < <(find "${BGS_DIR}"/horizontal/ -print0 2>/dev/null) readarray -d '' BGS < <(find "${BGS_DIR}"/landscape/ -print0 2>/dev/null) change_bg # OUTPUTS=("$(swq list output | jq -r '..|select((.transform?=="270")or(.transform?=="90"))|.name')") readarray OUTPUTS < <(wlr-randr | awk 'BEGIN{name=""} /^\S/{name=$1} /Transform: 90/{printf name}') readarray -d '' BGS < <(find "${BGS_DIR}"/vertical/ -print0 2>/dev/null) readarray -d '' BGS < <(find "${BGS_DIR}"/portrait/ -print0 2>/dev/null) change_bg --anchor=left