ofc you may schedule it with cron but following script I wrote won’t change anything. The setting is set but nothing changes. I’m on Fedora Silverblue
edit:
solution
wallpath=/usr/local/share/backgrounds/Dynamic_Wallpapers
image=$(find $wallpath -name "*.xml" | grep -E xml | sort -R | tail -1)
image="file:///$image"
echo $image
gsettings set org.gnome.desktop.background picture-uri "$image"
gsettings set org.gnome.desktop.background picture-uri-dark "$image"
and crontab
@daily ~/wallpaper_changer.sh
@reboot ~/wallpaper_changer.sh
I’m not sure about using xml files, but there’s also a ‘picture-uri-dark’ key you need to set instead if you’re using dark mode. I have a similar setup with a systemd user timer that runs every 5 minutes.
Edit: I just tried it out in the terminal and it works ok for xml files, too. Also, I try to avoid parsing the output of ls in scripts. You can use find instead, something like
find $wallpath -name '*.xml'
should work.
Nice! It worked. Thank you so much!
I use a while true approach with sleep 24h or whatever. Doesn’t seem to impact my CPU usage, but I guess the crontab approach is more Unix-like.
Plot twist: OP uses KDE