Files
BitDay-Linux/update.sh
2013-12-30 09:50:45 +02:00

61 lines
1.4 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=(
01-Morning.png
02-Late-Morning.png
03-Afternoon.png
04-Late-Afternoon.png
05-Evening.png
06-Late-Evening.png
07-Night.png
08-Late-Night.png
)
#Timings for the backgrounds in order. Your life may vary.
timing=(
7
10
12
17
18
19
21
23
)
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 {7..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]}"