Files
BitDay-Linux/update.sh
T
2016-12-07 16:17:07 +02:00

56 lines
1.5 KiB
Bash
Executable File

#!/bin/bash
# Original script by http://www.reddit.com/u/javajames64
# Updates by http://www.reddit.com/u/OhMrBigshot
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
sessionfile=`find "${HOME}/.dbus/session-bus/" -type f`
export `grep "DBUS_SESSION_BUS_ADDRESS" "${sessionfile}" | sed '/^#/d'`
files=(
11-Mid-Night.png
12-Late-Night.png
01-Early-Morning.png
02-Mid-Morning.png
03-Late-Morning.png
04-Early-Afternoon.png
05-Mid-Afternoon.png
06-Late-Afternoon.png
07-Early-Evening.png
08-Mid-Evening.png
09-Late-Evening.png
10-Early-Night.png
)
#Timings for the backgrounds in order. Your life may vary.
timing=(0 2 4 6 8 10 13 16 18 20 21)
hour=`date +%H`
hour=$(echo $hour | sed 's/^0*//')
# Different desktop environment implementations
case $XDG_CURRENT_DESKTOP in
Mint|Mate) setcmd="gsettings set org.mate.background picture-uri";;
Cinnamon) setcmd="gsettings set org.cinnamon.background picture-uri";;
*) setcmd="gsettings set org.gnome.desktop.background picture-uri";; # GNOME/Unity, default
esac
if [[ -z $XDG_CURRENT_DESKTOP ]]; then # Fallback for i3
case $DESKTOP_SESSION in
i3) setcmd="feh --bg-fill"
esac
fi
for i in {12..0..-1}; do # Loop backwards through the wallpapers
if [[ $hour -ge ${timing[i]} ]]; then
$setcmd file://$DIR/${files[i]}
echo "Wallpaper set to ${files[i]}"
exit
fi
done
# Fallback at last wallpaper if time is not relevant
$setcmd file://$DIR/${files[7]}
echo "Wallpaper set to ${files[7]}"