#!/bin/sh set -eu IMAGES_DIR="$HOME/pics/wallpapers" die() { printf '%s' "\ ${0##*/}: $1 " >&2 exit 1 } [ -d "$IMAGES_DIR" ] || die "directory not found: $IMAGES_DIR" images_list=$(find "$IMAGES_DIR" -type f -name '*.png' -o -name '*.jpg' -o -name '*.jpeg') [ -n "$images_list" ] || die "no images found" selected_image=$(printf '%s' "$images_list" | shuf | nsxiv -iot) [ -n "$selected_image" ] || exit 0 wallpaper-set "$selected_image"