Existem forças diferentes em jogo. A maneira canônica de alterar os papéis de parede é usar org.gnome.desktop.background picture-uri
schema e key. A parte importante é que a imagem tem que ser um arquivo local .
No caso do problema # 4, o esquema está sendo alterado diretamente; Observe que todas as opções disponíveis nas configurações de aparência são de pastas locais.
no caso de outros problemas que você especificou, ele está sendo feito através do nautilus, e o nautilus tem a possibilidade de acessar unidades compartilhadas na rede, o que significa que o usuário pode tentar configurar a imagem de fundo de lá. Bem, lembra o que eu disse - a imagem deve ser local? Essa é a razão pela qual o nautilus copia o arquivo.
O código exato para isso é definido em 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. */
Como contornar isso? Realmente não há como codificar no nautilus. Você pode querer arquivar uma solicitação de recurso com os desenvolvedores ou alterar a fonte você mesmo.