How does setting wallpapers work in Ubuntu?
There are different forces at play. The canonical way to alter wallpapers is using org.gnome.desktop.background picture-uri
schema and key. The important part is that the picture has to be a local file.
In case of problem #4, the schema is being altered directly; note that all available options in the appearance settings are from local folders.
in case of other problems you've specified, it's being done through nautilus, and nautilus has possibility of accessing network-shared drives, which means user may attempt setting background image from there. Well, remember what i said - the image must be local ? That's the reason why nautilus will copy the file.
The exact code for that is set in nautilus-view.c
file
static void
action_set_as_wallpaper_callback (GtkAction *action,
NautilusView *view)
{
GList *selection;
/* Copy the item to Pictures/Wallpaper since it may be
remote. Then set it as the current wallpaper. */
How to work around that ? There's really no way as it is hard-coded into nautilus. You may want to file a feature request with the developers or alter the source yourself.