Does not hit the network, and more natural.
#!/bin/sh
-DATA=$HOME/.cache/sunrise.json
set -eu
if [ "${1:-}" = "night" ]; then
elif [ "${1:-}" = "day" ]; then
night=
else
- # get daylight times at most once a day
- if [ ! -e "$DATA" ] || [ $(( `date +%s` - `stat -c %Y $DATA` )) -gt 86400 ]; then
- curl --silent --show-error --connect-timeout=5 -o "$DATA" 'https://api.sunrise-sunset.org/json?lat=48.22&lng=10.54&formatted=0' || true
- fi
- sunrise=$(jq -r .results.sunrise < ~/.cache/sunrise.json)
- sunset=$(jq -r .results.sunset < ~/.cache/sunrise.json)
- now=$(date '+%H%M')
- if [ $now -le $(date -d "$sunrise" '+%H%M') ] || [ $now -ge $(date -d "$sunset" '+%H%M') ]; then
+ if [ "$(gsettings get org.gnome.desktop.interface color-scheme)" = "'prefer-dark'" ]; then
night=1
fi
fi