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Ă !