I don't use any major desktop environment on Linux. Most of these takes care of managing the wallpaper of your session by some functionality in the specific file manager. So, the desktop is treated as another directory by Nautius, Dolphin, Thunar, and others.
This is not the way I do things. I'm more into window managers that regularly don't know anything about wallpaper.
In my case, I use hsetroot, a very small utility, that can be installed on my Ubuntu setup with:
sudo apt install hsetroot
And I just use
hsetroot for two very specific actions
hsetroot -solid "#000000"
Will set black as the solid color background.
hsetroot -cover /path/to/image.jpg
Will expand and/or crop the image to fully cover the screen by respecting its aspect ratio.
hsetroot doesn't store any settings. So, then session is restarted it will not remember the last color/image set. How to fix this? Call
hsetroot on session start. I personally do it in my
~/.xsessionrc and with an specific path.
hsetroot -cover ~/.wallpaper.jpg
When I want to set a new wallpaper I replace this file, in the next session that will be the default.
There are more comfortable ways to change your wallpaper, specially for those who do it very frequent. But, for me, who changes it once in months (maybe),
hsetroot is perfect:
- it does just one thing
- it doesn't have a GUI
- it's very simple to call in scripts.
And finally, yes, there are other utilities to do the same.
xsetroot for example. But, for some reason I have been using
hsetroot for a couple of years. It just works!