All checks were successful
		
		
	
	Run nix flake check / flake-check (push) Successful in 1m46s
				
			
		
			
				
	
	
		
			43 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/usr/bin/env bash
 | |
| set -eo pipefail
 | |
| 
 | |
| if [ -z "${WALLPAPER_DIR}" ]; then
 | |
|     WALLPAPER_DIR="${HOME}/wallpapers"
 | |
| fi
 | |
| 
 | |
| if ! [ -d "$WALLPAPER_DIR" ]; then
 | |
|     echo "Wallpaper dir is not a directory"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| if [ "$#" -eq 1 ]; then
 | |
|     wallpaper_path="$1"
 | |
|     ext=$(file --extension "$wallpaper_path" | cut -d" " -f2)
 | |
|     if ! [ "$ext" == "png" ]; then
 | |
|         echo "$wallpaper_path is an invalid wallpaper"
 | |
|     fi
 | |
| else
 | |
|     wallpaper_path=$(find "$WALLPAPER_DIR" -mindepth 1 | grep png| grep -v current| sort -R | tail -n 1)
 | |
| fi
 | |
| 
 | |
| 
 | |
| if [ -z "$wallpaper_path" ]; then
 | |
|     echo "Unable to find wallpaper"
 | |
|     exit 1
 | |
| fi
 | |
| 
 | |
| echo "setting $wallpaper_path as wallpaper"
 | |
| hyprctl hyprpaper unload all
 | |
| hyprctl hyprpaper preload "$wallpaper_path"
 | |
| 
 | |
| if command -v wal &> /dev/null; then
 | |
|     wal -i "$wallpaper_path"
 | |
| fi
 | |
| 
 | |
| unlink "$WALLPAPER_DIR/current.png" || true
 | |
| ln -s "$wallpaper_path" "$WALLPAPER_DIR/current.png"
 | |
| 
 | |
| for monitor in $(hyprctl monitors | grep 'Monitor' | awk '{ print $2 }'); do
 | |
|     hyprctl hyprpaper wallpaper "$monitor,$wallpaper_path"
 | |
| done
 |