#! /bin/bash arg=$1 if [[ "$arg" == "" ]] ; then echo "Usage: set-wallpaper [--restore]|[/path/to/image/or/video]" exit fi set_wallpaper() { killall mpvpaper 2>> /dev/null killall swaybg 2>> /dev/null mimeType=$(file --mime-type $1 | awk '{ print $2 }') if [[ "$mimeType" == video* || "$mimeType" == audio* || "$mimeType" == "image/gif" ]] ; then echo "Setting video wallpaper using mpvpaper" /sbin/mpvpaper -o "no-audio" VGA-1 $1 echo "Video wallpaper has been set" elif [[ "$mimeType" == image* ]] ; then echo "Setting image wallpaper using swaybg" /sbin/swaybg -i $1 -m fill & echo "Image wallpaper has been set" fi } if [[ "$arg" == "--restore" ]] ; then path=$(cat $HOME/.wallpaper) set_wallpaper $path else if [[ "$arg" == ./* ]] ; then arg="$PWD/$arg" fi echo "$arg" > $HOME/.wallpaper echo "Saved $arg as a wallpaper but you need to run 'set-wallpaper --restore'" fi