Imagen del día de fondo de escritorio de GNOME.

Imagen del día de fondo de escritorio de GNOME

Miguel Menéndez

A diferencia de KDE Plasma, GNOME no tiene una función nativa para reemplazar el fondo del escritorio por una “imagen del día”. KDE Plasma ofrece múltiples fuentes para realizar esta tarea de forma nativa (NASA, Bing, National Geographic, NOAA, Unsplash, Wikimedia Commons…). Seguro que existen varios plugins de terceros para GNOME que suplen esta función, plugins que tienden a romper GNOME cada vez que hay una actualización. El siguiente es un script de apenas cuatro líneas que suelo utilizar en puestos de trabajo con GNOME.

Script para descargar una imagen aleatoria de picsum.photos :

#!/bin/sh

wget -O ~/.local/share/backgrounds/background.jpg https://picsum.photos/1920/1080

1920/1080 son la anchura y altura en píxeles de la imagen a descargar. Guardo el script en /home/miguel/.local/share/backgrounds/ donde se guardará también la imagen descargada con el nombre background.jpg

Pero este script tiene un problema: Si en el momento de ejecutarse falla el comando wget (no hay salida a Internet, el servidor de picsum.photos no responde, etc.), se guardará un archivo background.jpg vacío, pisando la imagen anterior y mostrándose un fondo negro en el escritorio. Para solucionarlo:

#!/bin/sh

if wget -O ~/.local/share/backgrounds/background-tmp.jpg https://picsum.photos/1920/1080
then mv ~/.local/share/backgrounds/background-tmp.jpg ~/.local/share/backgrounds/background.jpg
else rm ~/.local/share/backgrounds/background-tmp.jpg
fi

Ahora, wget guardará la imagen en el archivo background-tmp.jpg, si wget se ejecuta correctamente se moverá el archivo background-tmp.jpg a background.jpg y, si falla, se elmina el archivo vacío background-tmp.jpg conservándose el archivo background.jpg anterior.

En este ejemplo el directorio /home/miguel está cifrado por lo que la ejecución periódica del anterior script no se realizará no por cron ni por systemd. Se ejecutará una vez cuando el usuario miguel inicie sesión en GNOME y para ello creo el siguiente archivo que guardaré en /home/miguel/.config/autostart/ con el nombre download-background.desktop

[Desktop Entry]
Type=Application
Name=DownloadBackground
GenericName=Download a wallpaper
Comment=Download a ramdom wallpaper.
Exec=/home/miguel/.local/share/backgrounds/download-background.sh
Terminal=false

Aviso: No funcionará ~/.local/... en Exec=

Compruebo:

Cierro la sesión de GNOME y vuelvo a iniciarla. En un espacio de trabajo vacío, click derecho de ratón, «Cambiar el fondo…»:

Y compruebo que ya ha encontrado la imagen descargada en ~/.local/share/backgrounds/background.jpg al iniciar sesión (la foto de una medusa en este ejemplo):

La selecciono y listo:

Comentarios

¿Has encontrado un error? ¿Crees que algo podría mejorarse? No dudes en comentármelo y estaré encantado de echarle un vistazo.