Je veux changer mon fond d'écran dans Ubuntu 11.10 (avec Unity) dans un petit script Python. J'ai trouvé la possibilité de le changer via le gconf-editor
dans /desktop/gnome/background/picture_filename
. Avec python-gconf
, je peux changer les valeurs nécessaires.
Apparemment, la chaîne gconf n'est pas lue. Si je le change (via un script ou via gconf-editor
), le fond d'écran reste et dans le menu "Changer le fond d'écran", l'ancien fond d'écran est affiché.
Comment puis-je changer le fond d'écran pour Unity via un script Python?
Le code suivant fonctionne.
#!/usr/bin/python
# -*- coding: utf-8 -*-
from gi.repository import Gio
class BackgroundChanger():
SCHEMA = 'org.gnome.desktop.background'
KEY = 'picture-uri'
def change_background(self, filename):
gsettings = Gio.Settings.new(self.SCHEMA)
print(gsettings.get_string(self.KEY))
print(gsettings.set_string(self.KEY, "file://" + filename))
gsettings.apply()
print(gsettings.get_string(self.KEY))
if __name__ == "__main__":
BackgroundChanger().change_background("/home/user/existing.jpg")
Voici
la source
Peut-être pas la meilleure mais la solution la plus simple:
la source
w = "/usr/share/backgrounds/warty-final-ubuntu.png"; c = 'gsettings set org.gnome.desktop.background picture-uri "file://%s"' % w; import subprocess; subprocess.call(c.split())