使用gsettings设置壁纸的问题

我使用gsettings set org.gnome.desktop.background picture-uri 'file://PathToImage'将图像设置为壁纸,如本答案所示 。 这不能正常工作。 对于今天的bing图像, 这里的脚本改变了我的背景

我的桌面的图像

这是随机发生的,有时它会正确设置壁纸。 使用GUI,通过右键单击将图像设置为墙纸,每次都能正常工作。 这个问题的任何可能原因?

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

你提到过

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

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

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

我们来做一个测试

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

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

以下命令是正确的,应该适用于任何情况:

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

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

要解决您的问题,请确保您从问题中运行脚本时有更好的互联网连接,或者尝试使用curl而不是wget如我在此处的答案中的脚本。

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

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

只有在wget命令完成后,才能执行以下操作:

 cp dwallpaper.temp dwallpaper 

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