I created a script that uses a cache of wallpapers. First, here's the script that searches your wallpapers directory for actual images (to filter out stupid Thumbs.db and things like that) and adds them to a file.
#!/bin/bash
find "$HOME/wallpapers" -type f \
-exec sh -c 'file "$1" | grep -q "image"' '{}' '{}' \; \
-a -fprint wallpapers-cache-new \
\
&& mv wallpapers-cache-new wallpapers-cache
That outputs a file called
wallpapers-cache, and the wallpaper switcher itself uses that:#!/bin/bash WALLPAPERS="$HOME/wallpapers-cache" export DISPLAY=:0 r=`rl -c1 $WALLPAPERS` gsettings set org.gnome.desktop.background picture-uri "file://$r"
rl comes from the randomize-lines package in Debian-based OSes.Add the latter to crontab to change your desktop as often as you'd like. VoilĂ !