Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

I used gsettings set org.gnome.desktop.background picture-uri 'file://PathToImage' to set an image as a wallpaper as suggested in this answer. This does not do the job properly. For today's bing image, script here changes my background like this

Image of my desktop

This happens at random and sometimes it sets the wallpaper properly. Using GUI, setting the image as wallpaper by right-clicking on it works properly every time. Any possible causes of this problem?

Edit1: The download is perfectly fine. As I have mentioned, I can set the photo as wallpaper by right clicking the photo and chosing 'set as wallpaper' from the menu.

share|improve this question
2  
I don't know for sure, but I suspect that the download is failing (only downloading a partial file) or the background is being displayed before the download is complete - do you have any way of confirming that the download is complete? –  d3vid Jan 6 at 13:21
    
Please see the edit in question. –  hatter Jan 6 at 16:16
    
Try rm /home/$USER/.cache/wallpaper/* before executing script. Let me know if it work. –  totti Jan 8 at 10:18
    
It worked for today, but since I am facing this issue randomly, I cannot guarantee. Can you please explain why the cache is causing a problem? –  hatter Jan 8 at 11:09
    
How today ....? –  totti Jan 21 at 6:25

2 Answers 2

The following command is correct and should work in any circumstance:

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

So, I assume that the main reason why this thing is happen is because, as @d3vid noted in his comment: the download is failing (only downloading a partial file) or the background is being displayed before the download is complete.

To solve your problem be sure that you have a better internet connection when you run the script from your question or try to use curl instead of wget as in the script from my answer here.

share|improve this answer
    
I don't think the problem is with the download, because, the photo is perfectly fine. –  hatter Jan 6 at 16:17
1  
@nitish If the photo is perfectly fine, then run again gsettings set org.gnome.desktop.background picture-uri 'file://PathToImage'. I'm sure that this time it will looks good on your desktop. The problem is that when you run that script, gsettings will probably start before wget to finish completely. And for this I suggested you to use curl instead of wget. Or add a line like sleep 5 after wget line which will make the script to wait 5 seconds before to run gsettings. –  Radu Rădeanu Jan 6 at 16:38
    
..or combine wget and gsettings commands with && operator in the script like this: wget [wget_command_parameters] && gsettings [gsettings_command_parameters] –  rusty Jan 6 at 17:19
    
@RaduRădeanu, I tried that before. I put sleep 5 after wget.In fact, the image that I put on this question is produced by the script even with sleep 5 –  hatter Jan 7 at 9:11
    
@nitish Then your internet connection is even worse; try with more: sleep 20, sleep 30, etc. –  Radu Rădeanu Jan 9 at 10:02

You mentioned

The download is perfectly fine. As I have mentioned, I can set the photo as wallpaper by right clicking the photo and chosing 'set as wallpaper' from the menu.

As you can manually set the wallpaper the problem may be on the cache, which is generated before the downloader completely write the data on the file. So regenerating the cache in this kind of case is necessary.

So delete wallpaper cache rm /home/$USER/.cache/wallpaper/* . Add this code to end of the script after some sleep.

Let's do a test

  1. Find and open the image cache of current wallpaper from /home/$USER/.cache/wallpaper/
  2. Edit the image ( such as rotate clockwise. You can do it with the default imageg viwer (GNOME image viewer) using Ctrl+R (Or from edit -> rotate))
  3. Logout and login ubuntu (or restart)

That's it now you can see the changes on the desktop wallpaper (If you rotated the image, then the wallpaper will also get rotated)

share|improve this answer
    
This command: rm /home/$USER/.cache/wallpaper/* doesn't have nothing to do with the new wallpaper; it only removes the wallpaper used before to launch the script. So, it doesn't help with nothing. –  Radu Rădeanu Jan 9 at 9:57
    
You are correct. fixing –  totti Jan 9 at 10:01
    
Adding that command to the end of the script it also doesn't help. Following your test, after re-login, the desktop will remain without any wallpaper. –  Radu Rădeanu Jan 9 at 10:08
    
You may need to reboot. It worked for me –  totti Jan 9 at 10:24
1  
Yes, this is working for me!! –  hatter Jan 9 at 10:51

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.