我正在使用 Cinnamon 2.8.6 和 ubuntu 16.04。我需要将特定图像设置为桌面背景。但是经过谷歌搜索,我使用以下命令找到了解决方案:
gsettings set org.gnome.desktop.background show-desktop-icons false
gsettings set org.gnome.desktop.background picture-uri file:///home/techy/Downloads/desktop_bg.jpg
gsettings set org.gnome.desktop.background show-desktop-icons true
gsettings set org.gnome.desktop.background show-desktop-icons false
此后,背景发生了变化。但我不明白哪个包负责执行此更改?脚本实际上是如何工作的?还有其他方法可以从终端执行此操作吗?
答案1
要了解这些命令的作用,让我们跟踪一下线索。
man gsettings
说GSettings 配置工具
但是“GSettings”是什么?
在https://wiki.gnome.org/HowDoI/GSettings我发现:
GSettings 是管理应用程序设置的好方法。
好的,这样稍微好一点,因为它描述了高层的目的,但仍然非常模糊。
我们回到
man gsettings
。该命令的用法gsettings set
描述如下:gsettings set SCHEMA [:PATH] KEY VALUE
因此,GSettings 似乎是某种具有分层键模式的键值存储。
总而言之,命令
gsettings set org.gnome.desktop.background picture-uri file:///home/techy/Downloads/desktop_bg.jpg
将把值分配给属于架构的
file:///home/techy/Downloads/desktop_bg.jpg
键。picture-uri
org.gnome.desktop.background
现在,当(重新)分配该值时会发生什么?这是另一个
gsettings
命令:monitor SCHEMA [:PATH] [KEY]
监视
KEY
更改并打印更改的值。如果未KEY
指定,则监视架构中的所有键。监视将持续到进程终止。因此应用程序可以监视模式和密钥的变化。
显然,负责绘制桌面背景壁纸的进程会监视此键,并通过绘制值中引用的文件中的图像来对更改做出反应
picture-uri
。通常,桌面环境的桌面合成器负责此操作。在您的情况下,桌面合成器是 Cinnamon,但其他人可能有 Gnome Shell、MATE 或 Unity。