Ich möchte mein Hintergrundbild in Ubuntu 11.10 (mit Unity) in einem kleinen Python-Skript ändern. Ich habe die Möglichkeit gefunden, es über das gconf-editor
In zu ändern /desktop/gnome/background/picture_filename
. Mit python-gconf
kann ich die notwendigen Werte ändern.
Anscheinend wird der gconf-String nicht ausgelesen. Wenn ich es ändere (entweder über ein Skript oder über gconf-editor
), bleibt das Hintergrundbild erhalten und im Menü "Hintergrundbild ändern" wird das alte Hintergrundbild angezeigt.
Wie kann ich das Hintergrundbild für Unity über ein Python-Skript ändern?
Der folgende Code funktioniert.
#!/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")
Bitte schön
quelle
Vielleicht nicht die beste, aber die einfachste Lösung:
quelle
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())