web-dev-qa-db-fra.com

Où wallch enregistre-t-il la liste des photos et des dossiers dont il prend des photos?

Je veux écrire un script bash qui peut supprimer le fond d'écran actuel du wallch playlist. Par playlist, je parle de cette liste dans wallch à laquelle vous pouvez ajouter des images et des dossiers, en disant à wallch qu'il peut les utiliser comme fond d'écran.

Comment cette playlist est-elle stockée par wallch? sqlite? xml? Puis-je accéder à cette playlist et la modifier par programmation?

4
Shawn

Il serait assez difficile de supprimer le fond d'écran actuel de la liste de Wallch pendant que Wallch est en cours d'exécution et chante des fonds d'écran, car la liste est accessible par la mémoire (également enregistrée dans ~/.config/Wallch/MainWindow.conf, mais elle n'est pas lue par là en direct, cet emplacement est utilisé pour restaurer la liste de lecture, par exemple si l'ordinateur est en panne ou si le programme n'est pas arrêté correctement).

Il serait beaucoup plus facile de créer un script qui modifie automatiquement l'arrière-plan lors de la lecture d'un fichier album.wallch à l'aide de la commande

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

et une boucle "while". Exemple:

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

Une autre solution, mais trop compliquée, serait la suivante:

  1. Démarrez Wallch normalement et ajoutez des images, s'il n'y en a pas dans la liste
  2. Quitter Wallch (Ctrl + Q)
  3. Démarrez Wallch dans un terminal à l'aide de la commande wallch --constant
  4. Supprimez le papier peint correspondant de ~/.config/Wallch/MainWindow.conf
  5. Faites ce que vous voulez faire.
  6. Répétez à partir de l'étape 3.

Mais je suggérerais vraiment la 1ère solution, en créant votre propre script pour cela, si vous souhaitez utiliser Wallch uniquement pour changer l'image d'arrière-plan, vous devez totalement utiliser la commande directe

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

J'utilise wallch et je ne l'aime généralement pas: c'est difficile de modifier la liste des fichiers (comme vous voyez). Il est cependant possible de se faire un répertoire rempli de liens logiciels et de les afficher dans wallch. Ensuite, votre script peut singe avec les liens logiciels, et wallch ne le remarquera même pas. Utilisez la commande "ln" avec -s pour configurer un lien logiciel. Si vous avez/home/me/Pictures/Backgrounds comme répertoire avec les liens, vous faites quelque chose comme

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

pour remplacer le fichier "1.jpg" dans le répertoire Arrière-plans. Il sera lié à GreatPic.jpg dans l'autre répertoire et peut facilement être remplacé par programme. Utilisez des liens logiciels (option -s) pour ne pas lier les images en dur. Utilisez l'option "forcer" (-f ou -sf) pour supprimer et remplacer les liens ou fichiers existants dans le répertoire.

Un problème: cette approche ne vous permet pas de modifier le nombre d'arrière-plans affichés par wallch. Vous ne pouvez changer que les photos.

J'ai essayé la commande gsettings et j'ai trouvé que la partie "path" devait avoir le fichier de format:/blah/blah/blah. J'ai été surpris de voir que http: //server.tld/blah/blah/blah ne fonctionne pas.

Est-il important de faire quelque chose avec ou à l'arrière-plan actuellement affiché? Dans ce cas, vous feriez probablement mieux d'exécuter un script Python ou Perl (tout ce que vous connaissez) et de gérer les signaux. Par exemple, vous pouvez donner à votre script un gestionnaire de signal qui le supprime le fichier actuellement affiché (si c'est le genre de chose que vous vouliez).

0
Frank M