Since Xfce 4.6 I’ve had the wallpaper autorotated on my Xfce desktop with the help of a small script and cron. But after an update of some component (probably libxfconf / xfconf) my script did not work anymore and I got this error if I tried to run the script from a console or via ssh:
** (process:4150): CRITICAL **: Failed to init libxfconf: Failed to connect to socket /tmp/dbus-xrIvHB4Jas: Connection refused
So I made a workaround that did not require cron, and it runs in the current session. I created a .desktop file in ~/.config/autostart with this content:
[Desktop Entry]
Encoding=UTF-8
Version=0.9.4
Type=Application
Name=Rotate bg
Comment=
Exec=/home/enrique/bin/xfce-rotatebg.sh &
StartupNotify=false
Terminal=false
Hidden=false
And the content of the xfce-rotatebg.sh is:
#!/bin/sh
while true; do
PROPERTY="/backdrop/screen0/monitor0/image-path"
IMAGE_PATH=`xfconf-query -c xfce4-desktop -p ${PROPERTY}`
xfconf-query -c xfce4-desktop -p ${PROPERTY} -s ""
xfconf-query -c xfce4-desktop -p ${PROPERTY} -s "${IMAGE_PATH}"
sleep 600
done
The sleep command controls the delay between wallpaper changes.
Remember this only works if you have created a list of wallpapers in the desktop settings of Xfce.