让我们做个测试

让我们做个测试

我曾经gsettings set org.gnome.desktop.background picture-uri 'file://PathToImage'按照建议将图像设置为墙纸这个答案。这不能正常工作。对于今天的 Bing 图像,脚本在这里像这样改变我的背景

我的桌面图片

这种情况随机发生,有时它可以正确设置壁纸。使用 GUI,通过右键单击将图像设置为壁纸每次都可以正常工作。此问题可能的原因是什么?

编辑 1:下载完全没问题。正如我所提到的,我可以通过右键单击照片并从菜单中选择“设置为壁纸”将照片设置为壁纸。

答案1

你提到

下载非常顺利。正如我所提到的,我可以通过右键单击照片并从菜单中选择“设置为壁纸”将照片设置为壁纸。

由于您可以手动设置壁纸,因此问题可能出在缓存上,缓存是在下载程序完全将数据写入文件之前生成的。因此,在这种情况下重新生成缓存是必要的。

因此删除壁纸缓存rm /home/$USER/.cache/wallpaper/*。将此代码添加到脚本末尾的一些后面sleep

让我们做个测试

  1. 查找并打开当前壁纸的图片缓存/home/$USER/.cache/wallpaper/
  2. 编辑图像(例如顺时针旋转。您可以使用默认图像查看器(GNOME 图像查看器)的 Ctrl+R 键进行编辑(或者从编辑 -> 旋转))
  3. 注销并登录 ubuntu(或重新启动)

就这样,现在您可以看到桌面壁纸上的变化(如果您旋转了图像,那么壁纸也会旋转)

答案2

以下命令是正确的并且在任何情况下都应该有效:

gsettings set org.gnome.desktop.background picture-uri 'file://PathToImage'

因此,我认为发生这种情况的主要原因是,正如@d3vid 在他的评论下载失败(仅下载部分文件)或在下载完成之前显示背景

为了解决您的问题,请确保您在运行时具有更好的互联网连接剧本从你的问题或尝试使用curl而不是wget像我的答案中的脚本那样这里

答案3

也许在脚本中,您应该首先将新图片下载到临时文件中,例如:

wget --no-proxy --output-document=dwallpaper.temp (...)

并且仅在wget命令完成后才执行:

cp dwallpaper.temp dwallpaper

这样,gsettings始终指向已 100% 下载的文件,这可能会解决您观察到的问题。

相关内容