diff --git a/scripts/awsetbg b/scripts/awsetbg new file mode 100755 index 0000000..4463ccb --- /dev/null +++ b/scripts/awsetbg @@ -0,0 +1,65 @@ +#!/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