En linux existen diversas aplicaciones para cambiar automáticamente el fondo de pantalla cada cierto tiempo. Algunas de los programas que hacen esto son webilder, wallpapoz, drapes, wallpaper-tray, wallpaper changer screenlet, wallpaperd o wally. Sin embargo algunas de estas aplicaciones no funcionan correctamente en Gnome shell (o no funcionan directamente) o hay que compilar el código para poder instalarlo, lo cual es algo tedioso.

Para cambiar el fondo de pantalla se puede hacer desde el terminal usando gsettings.

[usuario@equipo ~]$ gsettings set org.gnome.desktop.background picture-uri file:////home/Gabri/Imágenes/wallscript/105415.jpg

Sabiendo eso podemos crear un script que tome las imágenes de una carpeta y las ponga como fondo de escritorio cada determinado tiempo.

El siguiente script es un ejemplo en el que se cambia el fondo de pantalla cada 5 minutos y toma las imágenes de formato jpg de la carpeta /home/usuario/Imágen/Carpeta-wallpapers.

#!/bin/bash

DIRECTORIO=/home/usuario/Imágen/Carpeta-wallpapers

for A in $DIRECTORIO/*.jpg ; do
  gsettings set org.gnome.desktop.background picture-uri "file:///$DIRECTORIO/$A"
  sleep 300
done

Poco a poco fui desarrollando el script y la versión que tengo ahora me deja continuar desde la última imagen que se mostró como fondo, cambiar el fondo sin necesidad de esperar el tiempo necesario pasando la opción -s y también puedo establecer al arrancar el script el tiempo que quiero que dure la imagen como fondo mediante un argumento.

El script se puede descargar en la sección de descargas, esta bajo el nombre de cambiawall. Os recomiendo leer el archivo leeme que añadí para saber los requisitos previos que necesita el script para funcionar correctamente.

Descargar script cambiawall.