Onde o wallch salva a lista de fotos e pastas de onde tira fotos?

Onde o wallch salva a lista de fotos e pastas de onde tira fotos?

Quero escrever um script bash que possa remover o papel de parede atual do wallchlista de reprodução. Por playlist, falo daquela lista no wallch à qual você pode adicionar fotos e pastas, informando ao wallch que ele pode usá-las como papel de parede.

Como esta playlist é armazenada pelo wallch? sqlite? xml? Posso acessar e modificar esta playlist programaticamente?

Responder1

Seria bastante difícil remover o papel de parede atual da lista do Wallch enquanto o Wallch está executando e alterando os papéis de parede, pois a lista é acessada pela memória (também salva em ~/.config/Wallch/MainWindow.conf, mas não é lida por lá live, este local é usado para restaurar a lista de reprodução, se, por exemplo, o computador travar ou o programa não for desligado corretamente).

Seria muito mais fácil criar um script que alterasse automaticamente o plano de fundo durante a leitura de um arquivo album.wallch usando o comando

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

e um loop 'while'. Exemplo:

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

Outra solução, mas muito complicada, seria a seguinte:

  1. Inicie o Wallch normalmente e adicione algumas imagens, se não houver nenhuma na lista
  2. Sair do Wallch (Ctrl+Q)
  3. Inicie o Wallch em um terminal usando o comandowallch --constant
  4. Remova o papel de parede correspondente de ~/.config/Wallch/MainWindow.conf
  5. Faça o que você quiser fazer.
  6. Repita a partir do passo 3.

Mas eu realmente sugeriria a 1ª solução, fazer seu próprio script para isso, se você quiser usar o Wallch apenas para alterar a imagem de fundo, você deve usar totalmente o comando direto

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

Responder2

Eu uso o wallch e geralmente não gosto dele: é difícil modificar a lista de arquivos (como você pode ver). No entanto, é possível criar um diretório cheio de links virtuais e fazer com que o wallch os exiba. Então, seu script pode mexer com os soft links e o wallch nem perceberá. Use o comando “ln” com -s para configurar um link simbólico. Se você tiver /home/me/Pictures/Backgrounds como o diretório com os links nele, faça algo como

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

para substituir o arquivo "1.jpg" no diretório Backgrounds. Ele será vinculado a GreatPic.jpg no outro diretório e poderá ser facilmente substituído programaticamente. Use links virtuais (opção -s) para não vincular as imagens. Use a opção “force” (-f ou -sf) para excluir e substituir links ou arquivos existentes no diretório.

Um problema: essa abordagem não permite alterar o número de fundos exibidos no wallch. Você só pode alterar quais fotos elas são.

Tentei o comando gsettings e descobri que a parte "caminho" precisa ter o arquivo de formato:/blah/blah/blah. Fiquei surpreso ao ver issohttp://server.tld/blah/blah/blahnão funciona.

É importante poder fazer algo com ou com o plano de fundo exibido no momento? Então provavelmente seria melhor executar um script Python ou Perl (o que você conhece) e manipular sinais. Por exemplo, você pode fornecer ao seu script um manipulador de sinal que exclua o arquivo exibido no momento (se esse for o tipo de coisa que você pretendia).

informação relacionada