web-dev-qa-db-fra.com

Problème avec la configuration du papier peint avec gsettings

J'ai utilisé gsettings set org.gnome.desktop.background picture-uri 'file://PathToImage' pour définir une image comme fond d'écran comme suggéré dans cette réponse . Cela ne fait pas le travail correctement. Pour l'image d'aujourd'hui bing, script here change mon arrière-plan comme ceci

Image of my desktop

Cela se produit au hasard et parfois, il définit le papier peint correctement. À l'aide de l'interface graphique, définir l'image comme fond d'écran en cliquant dessus avec le bouton droit de la souris fonctionne correctement à chaque fois. Des causes possibles de ce problème?

Edit1: Le téléchargement est parfaitement correct. Comme je l'ai mentionné, je peux définir la photo comme fond d'écran en cliquant avec le bouton droit de la souris et en choisissant "Définir comme fond d'écran" dans le menu.

6
nitishch

Vous avez mentionné

Le téléchargement est parfaitement correct. Comme je l'ai mentionné, je peux définir la photo comme fond d'écran en cliquant avec le bouton droit de la souris et en choisissant "Définir comme fond d'écran" dans le menu.

Comme vous pouvez définir manuellement le papier peint, le problème peut se trouver sur le cache, qui est généré avant que le téléchargeur écrive complètement les données du fichier. Il est donc nécessaire de régénérer le cache dans ce type de cas.

Supprimez donc le cache de papier peint rm /home/$USER/.cache/wallpaper/*. Ajoutez ce code à la fin du script après quelques sleep.

Faisons un test

  1. Recherchez et ouvrez le cache d'images du fond d'écran actuel à partir de /home/$USER/.cache/wallpaper/
  2. Modifiez l'image (par exemple, faites-la pivoter dans le sens des aiguilles d'une montre. Vous pouvez le faire avec l'imageg viwer par défaut (visionneuse d'images GNOME) à l'aide de Ctrl + R (ou à partir de l'édition -> faire pivoter).
  3. Se déconnecter et se connecter à Ubuntu (ou redémarrer)

Ça y est, vous pouvez voir les modifications sur le fond d'écran (si vous faites pivoter l'image, le fond d'écran subira également une rotation)

4
totti

La commande suivante est correcte et devrait fonctionner en toutes circonstances:

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

Donc, je suppose que la raison principale pour laquelle cela s’est produit est que, comme @ d3vid l’a noté dans son commentaire : , le téléchargement échoue (le téléchargement d’un fichier partiel seulement) ) ou l’arrière-plan est affiché avant la fin du téléchargement .

Pour résoudre votre problème, assurez-vous d'avoir une meilleure connexion Internet lorsque vous exécutez le script à partir de votre question ou essayez d'utiliser curl au lieu de wget comme dans le script de ma réponse. ici .

2
Radu Rădeanu

Peut-être que dans le script, vous devriez d'abord télécharger la nouvelle image dans un fichier temporaire du type:

wget --no-proxy --output-document=dwallpaper.temp (...)

Et seulement après que la commande wget est terminée, faites:

cp dwallpaper.temp dwallpaper

De cette façon, gsettings pointe toujours sur un fichier téléchargé à 100%, ce qui peut résoudre le problème que vous avez observé.

0
oscar