Linux

Kali Linux 中目前的桌面儲存在哪裡?

  • December 20, 2019

我有一個腳本,將一個精確的圖像設置為牆紙,我希望它在每次執行時檢查它是否仍然是相同的圖像。如果沒有,它會詢問您是否要再次將桌面更改為此圖像。它是更大項目的一部分,現在它的工作方式如下:

  1. 腳本檢測使用者目錄中是否有 .config.txt 文件
  2. 如果不是,它會詢問您是否要更改背景
  3. .config.txt 在此過程中創建

我已經在整個網際網路上搜尋了這個問題的答案。不幸的是,大多數主題都與 Ubuntu 相關,它們根本沒有幫助。我已經嘗試過定位背景命令,但我沒有看到任何合法的東西,哦,天哪,我已經搜尋了大多數列出的目錄。我也一直在 .cache 中搜尋,但仍然沒有。

如果你可以設置文件

gsettings set org.gnome.desktop.background picture-uri file:///path/to/the/file

然後你可以得到文件

gsettings get org.gnome.desktop.background picture-uri

這將為您提供一個'file:///usr/share/images/desktop-base/desktop-background.xml'不錯的字元串,但需要先對其進行解析,然後才能直接將其用作另一個 shell 命令的參數。所以我們可以很容易地去掉引號和file://帶有 的部分cut,比如:

gsettings get org.gnome.desktop.background picture-uri | cut -d/ -f3- | cut -d\' -f1

(注意:返回的文件對我來說實際上是一個 XML 文件,但我沒有使用 GNOME,所以我不知道這在實時系統上是如何工作的。在你之前可能需要在這裡進行另一個處理步驟可以開始比較文件。)

並且由於您已經知道要比較的文件的名稱,因此可以cmp用來比較這兩個文件:

cmp my/file.jpg "$(gsettings get org.gnome.desktop.background picture-uri | cut -d/ -f3- | cut -d\' -f1)"

cmp如果文件相同,將設置返回值0(true),如果文件不同或出現問題,則設置非零 (false)。我們可以使用它來決定下一步要做什麼,也許使用||僅目前一個命令返回非零(假)時才會執行命令的運算符。我們還可以cmp通過-s開關抑制輸出。這給了我們這個命令,例如,您可以作為正常 cron 作業執行:

cmp -s my/file.jpg "$(gsettings get org.gnome.desktop.background picture-uri | cut -d/ -f3- | cut -d\' -f1)" || gsettings set org.gnome.desktop.background picture-uri file:///full/path/to/my/file.jpg

庫存的 Kali 桌面圖像儲存在:

/usr/share/images/desktop-base/

目前桌面是通過連結 到您希望將其設置/etc/alternatives/desktop-background為的任何 .png 文件來設置的;/usr/share/images/desktop-base/儘管您可以將其連結到您選擇的任何其他文件夾中的 .png 文件。

引用自:https://unix.stackexchange.com/questions/308635