ฉันต้องการเปลี่ยนรูปพื้นหลังใน Ubuntu 11.10 (พร้อม Unity) ในสคริปต์ Python ขนาดเล็ก ผมพบว่าเป็นไปได้ที่จะเปลี่ยนผ่านในgconf-editor
/desktop/gnome/background/picture_filename
ด้วยpython-gconf
ฉันสามารถเปลี่ยนค่าที่จำเป็น
เห็นได้ชัดว่าสตริง gconf ไม่ได้ถูกอ่านออกมา ถ้าฉันเปลี่ยน (ผ่านสคริปต์หรือผ่านgconf-editor
) วอลล์เปเปอร์ยังคงอยู่และในเมนูของ "เปลี่ยนวอลล์เปเปอร์" วอลล์เปเปอร์เก่าจะปรากฏขึ้น
ฉันจะเปลี่ยนรูปพื้นหลังสำหรับ Unity ผ่านสคริปต์ Python ได้อย่างไร
รหัสต่อไปนี้ใช้งานได้
#!/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")