#!/bin/bash
#
# Author: Twily 2017
# Description: Grab random wallpaper from http://wallpaperswide.com once a day
# Usage: $ nohup ./dailywall > /dev/null 2>&1 &
# Requires: xwininfo, awk, wget
#
lock() {
exec 200>/var/lock/.dailywall.exclusivelock
flock -n 200 && return 0 || return 1
}
lock || exit 1
# (RES eg.: 1920x1080)
RES=$( xwininfo -root | grep geometry | awk -F" " '{print $2}' | awk -F"+" '{print $1}' )
DIR=/tmp/
LST=$DIR"list.html"
ITM=$DIR"item.html"
SET="21:37"
wallpaper() {
RND=$( shuf -i 1-5 -n 1 )
wget http://wallpaperswide.com/top_wallpapers/page/$RND -O $LST
#wget http://wallpaperswide.com/artistic-desktop-wallpapers/page/$RND -O $LST
sed -i '/-wallpapers\.html/!d' $LST
sed -i '/ /!d' $LST
sed -i 's/^.*href="\///' $LST
sed -i 's/" title=.*$//' $LST
sed -i '/_/!d' $LST
IMG=$( shuf -n 1 $LST )
NAM=$( echo $IMG | awk -F"-" '{print $1}' )
wget http://wallpaperswide.com/$IMG -O $ITM
sed -i "/$NAM/!d" $ITM
sed -i "/$RES/!d" $ITM
sed -i 's/^.*href="\///' $ITM
sed -i 's/" title=.*$//' $ITM
IMG=$( cat $ITM )
EXT=$( echo $IMG | awk -F"." '{print $2}' )
PIC=$DIR"$NAM.$EXT"
wget http://wallpaperswide.com/$IMG -O $PIC
# Chose software to set $PIC as wallpaper (!system specific!)
#pcmanfm --set-wallpaper $PIC
feh --bg-fill $PIC
}
while :; do
TIM=$( date +"%H:%M" )
if [ "$SET" == "$TIM" ]; then
wallpaper
sleep 50
fi
sleep 10
done
Top