#!/bin/sh # This script does the following: # Run by itself, set the wallpaper # If given a file, set that as the new wallpaper # If given a directory, recursively choose a random file in it. # Location of the symlink to wallpaper image bgloc="${XDG_DATA_HOME:-$HOME/.local/share}/background" trueloc="$(readlink -f "$1")" && case "$(file --mime-type -b "$trueloc")" in image/* ) ln -sf "$(readlink -f "$1")" "$bgloc" notify-send -i "$bgloc" "Changing wallpaper..." ;; inode/directory ) randimg="$(find -L $trueloc -iregex '.*.\(jpg\|jpeg\|png\|gif\)' -type f | shuf -n 1)" echo $randimg ln -sf "$randimg" "$bgloc" notify-send -i "$bgloc" "Random Wallpaper chosen." ;; *) notify-send "Error" "Not a valid image." exit 1 ;; esac # Use xwallpaper to set the background xwallpaper --zoom "$bgloc"