48 lines
1.1 KiB
Bash
Executable File
48 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
DAY_HOUR=7
|
|
NIGHT_HOUR=20
|
|
|
|
DAY_WALL="$HOME/.config/hypr/paper/day.jpg"
|
|
NIGHT_WALL="$HOME/.config/hypr/paper/night.jpg"
|
|
|
|
apply_day() {
|
|
hyprctl hyprpaper wallpaper "DP-2,$DAY_WALL" &>/dev/null
|
|
hyprctl hyprpaper wallpaper "HDMI-A-1,$DAY_WALL" &>/dev/null
|
|
}
|
|
apply_night() {
|
|
hyprctl hyprpaper wallpaper "DP-2,$NIGHT_WALL" &>/dev/null
|
|
hyprctl hyprpaper wallpaper "HDMI-A-1,$NIGHT_WALL" &>/dev/null
|
|
}
|
|
|
|
apply_now() {
|
|
hour=$(date +%H)
|
|
if (( hour >= DAY_HOUR && hour < NIGHT_HOUR )); then
|
|
apply_night
|
|
echo "night"
|
|
else
|
|
apply_day
|
|
echo "day"
|
|
fi
|
|
}
|
|
|
|
# --- FAST START ---
|
|
current_mode=$(apply_now)
|
|
|
|
# If hyprpaper wasn't ready yet, retry once shortly after
|
|
sleep 0.5
|
|
current_mode=$(apply_now)
|
|
|
|
# --- MAIN LOOP ---
|
|
while true; do
|
|
hour=$(date +%H)
|
|
|
|
if (( hour >= DAY_HOUR && hour < NIGHT_HOUR )); then
|
|
[[ "$current_mode" != "day" ]] && current_mode=$(apply_now)
|
|
else
|
|
[[ "$current_mode" != "night" ]] && current_mode=$(apply_now)
|
|
fi
|
|
|
|
# sleep until next minute boundary (feels instant at change)
|
|
sleep $((60 - $(date +%S)))
|
|
done |