我想用一个小的Python脚本在Ubuntu 11.10(带有Unity)中更改墙纸。我发现可以通过gconf-editorin 进行更改/desktop/gnome/background/picture_filename。使用python-gconf,我可以更改必要的值。
显然,不会读取gconf字符串。如果我更改了该脚本(通过脚本或通过gconf-editor),则保留墙纸,并且在“更改墙纸”菜单中显示旧墙纸。
如何通过Python脚本更改Unity的墙纸?
以下代码可以正常工作。
#!/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")