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?
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:
wallch --constant
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"
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).