Kali Linux 中当前的壁纸存储在哪里?

Kali Linux 中当前的壁纸存储在哪里?

我有一个脚本将一张精确的图像设置为壁纸,我希望它在每次运行时检查它是否仍然是相同的图像。如果没有,它会询问您是否要再次将壁纸更改为该图像。它是更大项目的一部分,目前它的工作原理如下:

  1. 脚本检测用户目录中是否有 .config.txt 文件
  2. 如果没有,它会询问您是否要更改背景
  3. .config.txt 在此过程中创建

我在互联网上搜索了这个问题的答案。不幸的是,大多数主题都与 Ubuntu 相关,而且它们根本没有帮助。我尝试过“定位背景”命令,但没有看到任何合法内容,天哪,我已经搜索了大部分列出的目录。我也在 .cache 中搜索,但仍然一无所获。

答案1

库存 Kali 壁纸图像存储在:

/usr/share/images/desktop-base/

当前壁纸是通过链接 到您想要将其设置为的/etc/alternatives/desktop-background任何 .png 文件来设置的;/usr/share/images/desktop-base/尽管您可以将其链接到您选择的任何其他文件夹中的 .png 文件。

答案2

如果你可以设置文件

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)"

cmp0如果文件相同,则设置返回值(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

相关内容