Isso funciona:
import shlex, subprocess, os, sys
def change_wp(fname, folder_stem='Pictures'):
home = os.environ['HOME']
uri = os.path.join(home, folder_stem)
uri = os.path.join(uri, fname)
set_wp_command = "gsettings set org.gnome.desktop.background picture-uri file://" + uri
args = shlex.split(set_wp_command)
try:
my_proc = subprocess.Popen(args)
my_proc.wait()
except:
sys.exit(1)
if __name__ == '__main__':
change_wp('mywallpaper.png')
print("Wallpaper changed...")
Antecipa mywallpaper.png existente em ~ / Pictures.