Hacer una búsqueda en Google revela el comando
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -s <image-path>
La primera vez que ejecuto este comando recibí un mensaje que decía que la propiedad / backdrop / screen0 / monitor0 / image-path no existe en el canal xfce4-desktop.
Entonces, creé esta propiedad:
xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/image-path -n -t string -s <image-path>
Pero aún así el fondo no cambió.
Luego cambié el fondo de space-03.jpg a space-04.jpg normalmente, desde la aplicación Configuración de escritorio de XUbuntu. Entonces corro:
$ xfconf-query -c xfce4-desktop -p /backdrop -lv
/backdrop/screen0/image-path /usr/share/backgrounds/space-03.jpg
/backdrop/screen0/monitor0/image-path /usr/share/backgrounds/space-03.jpg
/backdrop/screen0/monitor0/image-show true
/backdrop/screen0/monitor1/image-path /usr/share/backgrounds/space-03.jpg
/backdrop/screen0/monitor1/image-show true
/backdrop/screen0/monitorLVDS1/workspace0/color-style 0
/backdrop/screen0/monitorLVDS1/workspace0/image-style 5
/backdrop/screen0/monitorLVDS1/workspace0/last-image /usr/share/backgrounds/space-04.jpg
Como puede ver, la propiedad /backdrop/screen0/monitorLVDS1/workspace0/last-image
ha cambiado (!).
Si cambio esta propiedad, funciona bien, pero es que necesito encontrar una forma general para implementarla en mi programa (Wallch).
Incluso Variety
(que es un programa muy bueno, por cierto) no funciona correctamente en mi máquina y elige cambiar la propiedad /backdrop/screen0/monitor0/image-path
que no hace nada.
Una forma sería crear todas las propiedades posibles y cambiarlas todas cuando sea necesario, simultáneamente. No me gusta esta solución por 2 razones:
- Se necesitarán varias llamadas al sistema
- En un momento tendré que tomar la ruta de la imagen actual (para abrir su carpeta, copiarla, eliminarla y algunas otras funciones que proporciona el programa). No sabría qué propiedad mantiene el camino de la imagen realmente establecida para que esté disponible para el programa.
Tampoco entiendo por qué XFCE lo ha hecho tan complejo. ¿Por qué una propiedad no sería suficiente como en gsettings?