Где wallch сохраняет список фотографий и папок, из которых он делает снимки?

Где wallch сохраняет список фотографий и папок, из которых он делает снимки?

Я хочу написать bash-скрипт, который может удалить текущие обои со стены.плейлистПод плейлистом я подразумеваю тот список в wallch, в который вы можете добавлять изображения и папки, сообщая wallch, что он может использовать их в качестве обоев.

Как этот плейлист хранится в wallch? sqlite? xml? Могу ли я получить доступ и изменить этот плейлист программно?

решение1

Будет довольно сложно удалить текущие обои из списка Wallch, пока Wallch работает и меняет обои, так как доступ к списку осуществляется через память (также сохраненную в ~/.config/Wallch/MainWindow.conf, но она не считывается им в реальном времени, это место используется для восстановления списка воспроизведения, например, если компьютер вышел из строя или программа не была корректно завершена).

Было бы гораздо проще создать скрипт, который автоматически меняет фон при чтении файла album.wallch, используя команду

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

и цикл «while». Пример:

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

Другое решение, но слишком сложное, было бы следующим:

  1. Запустите Wallch в обычном режиме и добавьте несколько изображений, если их нет в списке.
  2. Выйти из Wallch (Ctrl+Q)
  3. Запустите Wallch в терминале с помощью командыwallch --constant
  4. Удалить соответствующие обои из ~/.config/Wallch/MainWindow.conf
  5. Делай, что хочешь.
  6. Повторите с шага 3.

Но я бы действительно предложил первое решение, создание собственного скрипта для этого, если вы хотите использовать Wallch только для смены фонового изображения, вам следует полностью использовать прямую команду

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

решение2

Я использую wallch и в целом он мне не нравится: изменять список файлов — это больно (как вы видите). Однако можно создать себе каталог, полный мягких ссылок, и заставить wallch отображать их. Затем ваш скрипт может возиться с мягкими ссылками, а wallch даже не заметит. Используйте команду "ln" с -s, чтобы настроить мягкую ссылку. Если у вас есть /home/me/Pictures/Backgrounds как каталог со ссылками в нем, вы делаете что-то вроде

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

для замены файла "1.jpg" в каталоге Backgrounds. Он будет ссылаться на GreatPic.jpg в другом каталоге и может быть легко заменен программно. Используйте мягкие ссылки (опция -s), чтобы не создавать жесткие ссылки на изображения. Используйте опцию "force" (-f или -sf) для удаления и замены существующих ссылок или файлов в каталоге.

Одна проблема: этот подход не позволяет вам менять количество фонов, отображаемых на стене. Вы можете только изменить, какие это картинки.

Я попробовал команду gsettings и обнаружил, что часть "path" должна иметь формат file:/blah/blah/blah. Я был удивлен, увидев этоhttp://server.tld/blah/blah/blahне работает.

Важно ли иметь возможность что-то делать с или с текущим отображаемым фоном? Тогда вам, вероятно, лучше запустить скрипт Python или Perl (с чем вы знакомы) и обрабатывать сигналы. Например, вы можете дать вашему скрипту обработчик сигналов, который заставит его удалить текущий отображаемый файл (если это то, что вы имели в виду).

Связанный контент