2016-07-25 13:09:46 +00:00
|
|
|
#!/bin/zsh
|
|
|
|
|
2017-01-10 16:45:32 +00:00
|
|
|
WALLPAPERRC=$(awesome-client <<<'return require("awful").util.getdir("config") .. "/wallpaperrc.lua"' | sed -e 's/.*string "\(.*\)"/\1/')
|
2016-07-25 13:09:46 +00:00
|
|
|
|
|
|
|
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 U=reload r=reload
|
|
|
|
|
|
|
|
wall=${1:a}
|
|
|
|
|
|
|
|
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 in x and y direction (for -t, -m)
|
|
|
|
-i ignore_aspect (for -m)
|
|
|
|
-b background color (for -c, -f)
|
|
|
|
-u update wallpaperrc
|
|
|
|
-U, -r reload from wallpaperrc"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [[ -n "$reload" ]]; then
|
|
|
|
if [[ ! -e $WALLPAPERRC ]]; then
|
|
|
|
echo "No wallpaperrc found"
|
|
|
|
exit 1
|
|
|
|
else
|
|
|
|
echo "dofile(\"$WALLPAPERRC\")" | awesome-client
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
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
|
2017-01-10 16:45:32 +00:00
|
|
|
echo "-- wallpaperrc generated by awsetbg
|
|
|
|
gears = require(\"gears\")
|
|
|
|
function set_wallpaper(s)
|
2016-07-25 13:09:46 +00:00
|
|
|
local wall=\"${wall}\"
|
|
|
|
local f = io.open(wall, \"r\")
|
|
|
|
if f~= nil then
|
2017-01-10 16:45:32 +00:00
|
|
|
gears.wallpaper.${method}(wall,s${extra_args})
|
|
|
|
end
|
|
|
|
end" > $WALLPAPERRC
|
2016-07-25 13:09:46 +00:00
|
|
|
fi
|