wallch 在哪裡保存其拍攝照片的圖片清單和資料夾?

wallch 在哪裡保存其拍攝照片的圖片清單和資料夾?

我想編寫一個 bash 腳本,可以從 wallch 中刪除當前壁紙播放清單。我所說的播放列表是指 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. 使用命令在終端機中啟動 Wallchwallch --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 甚至不會注意到。使用帶有 -s 的“ln”命令來設定軟連結。如果您有 /home/me/Pictures/Backgrounds 作為其中包含連結的目錄,您可以執行類似的操作

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

替換背景目錄中的檔案「1.jpg」。它將連結到其他目錄中的 GreatPic.jpg,並且可以輕鬆地以程式方式替換。使用軟連結(-s 選項),這樣就不會硬連結圖片。使用「強制」選項(-f 或 -sf)刪除並取代目錄中的現有連結或檔案。

一個問題:這種方法不允許您更改 wallch 顯示的背景數量。您只需更改它們的圖片即可。

我嘗試了gsettings指令,發現「路徑」部分需要有格式檔案:/blah/blah/blah。我很驚訝地看到http://server.tld/blah/blah/blah不起作用。

能夠對目前顯示的背景執行某些操作重要嗎?那麼您可能最好運行 Python 或 Perl 腳本(無論您熟悉什麼)並處理訊號。例如,您可以為腳本提供一個訊號處理程序,使其刪除目前顯示的檔案(如果這是您想要的類型)。

相關內容