65 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable file
		
	
	
	
	
| #!/bin/zsh
 | |
| 
 | |
| mode="-f"
 | |
| 
 | |
| offset_x=(-x 0)
 | |
| offset_y=(-y 0)
 | |
| background=(-b "theme.bg_default")
 | |
| 
 | |
| zparseopts -D -K h=help -help=help c=mode f=mode t=mode m=mode x:=offset_x y:=offset_y s:=screen i=ignore_aspect b:=background u=update
 | |
| 
 | |
| wall="$1"
 | |
| 
 | |
| if [ -n "$help" ] || [ -z "$wall" ]; then
 | |
| 	echo "usage: $0 [opts] file
 | |
| options:
 | |
| 	-s      screen number
 | |
| 	-c      centered
 | |
| 	-f      fit
 | |
| 	-t      tiled
 | |
| 	-m      maximized
 | |
| 	-x, -y  offset (for -t, -m)
 | |
| 	-i      ignore_aspect (for -m)
 | |
| 	-b      background color (for -c, -f)
 | |
| 	-u      update ~/.wallpaper symlink"
 | |
| 	exit 1
 | |
| fi
 | |
| 
 | |
| if [[ "${background[2]}" != "theme.bg_default" ]]; then
 | |
| 	background[2]="'${background[2]}'"
 | |
| fi
 | |
| 
 | |
| case "$mode" in
 | |
| 	-c)
 | |
| 		method=centered
 | |
| 		extra_args=", ${background[2]}"
 | |
| 		;;
 | |
| 	-f)
 | |
| 		method=fit
 | |
| 		extra_args=", ${background[2]}"
 | |
| 		;;
 | |
| 	-t)
 | |
| 		method=tiled
 | |
| 		extra_args=", {x = ${offset_x[2]}, y = ${offset_y[2]}}"
 | |
| 		;;
 | |
| 	-m)
 | |
| 		method=maximized
 | |
| 		if [ -n "${ignore_aspect}" ]; then
 | |
| 			ignore_aspect=true
 | |
| 		else
 | |
| 			ignore_aspect=false
 | |
| 		fi
 | |
| 		extra_args=", ${ignore_aspect}, {x = ${offset_x[2]}, y = ${offset_y[2]}}"
 | |
| 		;;
 | |
| 	*) exit ;;
 | |
| esac
 | |
| 
 | |
| echo "require('gears').wallpaper.${method}(\"${wall}\",1${extra_args})"
 | |
| echo "for s = 1, screen.count() do
 | |
| require('gears').wallpaper.${method}(\"${wall}\",s${extra_args})
 | |
| end" | awesome-client
 | |
| 
 | |
| if [[ -n "$update" ]]; then
 | |
| 	rm ~/.wallpaper
 | |
| 	ln -s ${wall} ~/.wallpaper
 | |
| fi
 | 
