我想用一个小的Python脚本在Ubuntu 11.10(带有Unity)中更改墙纸。我发现可以通过gconf-editor
in 进行更改/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")