¿Dónde guarda Wallch la lista de imágenes y carpetas de las que toma fotografías?

¿Dónde guarda Wallch la lista de imágenes y carpetas de las que toma fotografías?

Quiero escribir un script bash que pueda eliminar el fondo de pantalla actual del muro.lista de reproducción. Por lista de reproducción, me refiero a esa lista en Wallch a la que puedes agregar imágenes y carpetas, diciéndole a Wallch que puede usarlas como fondo de pantalla.

¿Cómo almacena Wallch esta lista de reproducción? SQLite? ¿xml? ¿Puedo acceder y modificar esta lista de reproducción mediante programación?

Respuesta1

Sería bastante difícil eliminar el fondo de pantalla actual de la lista de Wallch mientras Wallch se está ejecutando y cambiando los fondos de pantalla, ya que se accede a la lista mediante la memoria (también guardada en ~/.config/Wallch/MainWindow.conf, pero allí no se lee). live, esta ubicación se utiliza para restaurar la lista de reproducción, si, por ejemplo, la computadora falla o el programa no se cierra correctamente).

Sería mucho más fácil crear un script que cambie automáticamente el fondo mientras se lee un archivo album.wallch usando el comando

gsettings set org.gnome.desktop.background picture-uri "/path to image/here.jpg"

y un bucle 'mientras'. Ejemplo:

while read line; do
   gsettings set org.gnome.desktop.background picture-uri "$line"
   #here do what you want, remove image from the file being read, move image to trash
   #(located in ~/.local/share/Trash/files) and mark it as not wallpaper material.
   sleep $timeout #<- sleep the timeout you want until the next image
done < album.wallch

Otra solución, pero demasiado complicada, sería la siguiente:

  1. Inicie Wallch normalmente y agregue algunas imágenes, si no hay ninguna en la lista
  2. Salir de Wallch (Ctrl+Q)
  3. Inicie Wallch en una terminal usando el comandowallch --constant
  4. Elimine el fondo de pantalla correspondiente de ~/.config/Wallch/MainWindow.conf
  5. Haz lo que quieras hacer.
  6. Repita desde el paso 3.

Pero realmente sugeriría la primera solución, crear su propio script para esto, si desea usar Wallch solo para cambiar la imagen de fondo, debe usar totalmente el comando directo.

gsettings set org.gnome.desktop.background picture-uri "/path to image/here.jpg"

Respuesta2

Utilizo wallch y generalmente no me gusta: es complicado modificar la lista de archivos (como puede ver). Sin embargo, es posible crear un directorio lleno de enlaces suaves y hacer que Wallch los muestre. Entonces, su script puede jugar con los enlaces suaves y Wallch ni siquiera se dará cuenta. Utilice el comando "ln" con -s para configurar un enlace suave. Si tiene /home/me/Pictures/Backgrounds como directorio con los enlaces, haga algo como

ln -sf /home/me/Pictures/Vacation2013/GreatPic.jpg /home/me/Pictures/Backgrounds/1.jpg

para reemplazar el archivo "1.jpg" en el directorio Fondos. Se vinculará a GreatPic.jpg en el otro directorio y se puede reemplazar fácilmente mediante programación. Utilice enlaces suaves (opción -s) para no vincular las imágenes. Utilice la opción "forzar" (-f o -sf) para eliminar y reemplazar enlaces o archivos existentes en el directorio.

Un problema: este enfoque no le permite cambiar la cantidad de fondos que se muestran en la pared. Sólo puedes cambiar qué imágenes son.

Probé el comando gsettings y descubrí que la parte "ruta" debe tener el formato de archivo:/blah/blah/blah. Me sorprendió ver esohttp://server.tld/blah/blah/blahno funciona.

¿Es importante poder hacer algo con el fondo que se muestra actualmente? Entonces probablemente sería mejor ejecutar un script Python o Perl (lo que sea con lo que esté familiarizado) y manejar señales. Por ejemplo, podría darle a su secuencia de comandos un controlador de señales que haga que elimine el archivo que se muestra actualmente (si ese es el tipo de cosas que pretendía).

información relacionada