El fondo no cambia usando gsettings de cron

Estoy intentando cambiar mi fondo de pantalla a una imagen aleatoria usando el guión sugerido por Indrajith Indraprastham aquí: ¿Cómo cambiar el fondo del escritorio desde la línea de comandos en Unity?

Cuando ejecuto el script desde una ventana de terminal, el bg cambia muy bien, pero cuando se ejecuta desde cron, me envían este error:

(proceso: 21901): dconf-WARNING **: no se pudieron confirmar los cambios en dconf: error al generar la línea de comandos ‘dbus-launch –autolaunch = 00216c114dcf433c9bb9009985d607d6 – syntax binario –close-stderr’: proceso secundario finalizado con el código 1

Apreciaria cualquier sugerencia.

Edición de gsettings desde cron; variable de entorno faltante

Si ejecuta el script desde su propio entorno (por ejemplo, desde una ventana de terminal o desde Aplicaciones de inicio), se establecerán una serie de variables de entorno. Sin embargo, cron ejecuta su script con un conjunto limitado de variables de entorno.

Para editar gsettings correctamente desde cron , debe configurar la variable de entorno DBUS_SESSION_BUS_ADDRESS . Puede hacerlo agregando dos líneas a su script, como se describe aquí (y más abajo).

Su script, incluyendo la configuración de la variable necesaria

El script de aquí , editado para incluir la variable de entorno DBUS_SESSION_BUS_ADDRESS , se convierte en:

 #!/bin/bash PID=$(pgrep gnome-session) export DBUS_SESSION_BUS_ADDRESS=$(grep -z DBUS_SESSION_BUS_ADDRESS /proc/$PID/environ|cut -d= -f2-) DIR="/home/indra/Pictures/wallpapers" PIC=$(ls $DIR/* | shuf -n1) gsettings set org.gnome.desktop.background picture-uri "file://$PIC" 

Relacionados: Ejecutando .sh cada 5 minutos.