mirror of
				https://github.com/ItsDrike/dotfiles.git
				synced 2025-11-04 01:16:35 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			35 lines
		
	
	
	
		
			1,021 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
	
		
			1,021 B
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
#!/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
 | 
						|
if [ "$XDG_SESSION_TYPE" == "wayland" ]; then
 | 
						|
    killall swaybg 2>/dev/null
 | 
						|
    swaybg --image "$bgloc" & disown
 | 
						|
else
 | 
						|
    xwallpaper --zoom "$bgloc"
 | 
						|
fi
 |