我的标题可能有点误导,因为我实际上无法访问工作计算机,因此我无法验证它是否真的在另一台计算机上工作,但有人通过IM告诉我它可以在他们的计算机上运行,但它对我不起作用。
这是脚本,它只使用python 2.7.3并使用bash wget并设置背景。
#!/usr/bin/env python
import urllib2
import os
from gi.repository import Gio
response = urllib2.urlopen("http://wallbase.cc/random/12/eqeq/1366x768/0.000/100/32")
page_source = response.read()
thlink_pos = page_source.find("ico-X")
address_start = (page_source.find("href=\"", thlink_pos) + 6)
address_end = page_source.find("\"", address_start + 1)
response = urllib2.urlopen(page_source[address_start:address_end])
page_source = response.read()
bigwall_pos = page_source.find("bigwall")
address_start = (page_source.find("src=\"", bigwall_pos) + 5)
address_end = page_source.find("\"", address_start + 1)
address = page_source[address_start:address_end]
slash_pos = address.rfind("/") + 1
pic_name = address[slash_pos:]
bashCommand = "wget " + page_source[address_start:address_end]
os.system(bashCommand)
print "Does my new image exists?", os.path.exists(os.getcwd() + "/" + pic_name)
settings = Gio.Settings.new("org.gnome.desktop.background")
settings.set_string("picture-uri", "file://" + os.getcwd() + "/" + pic_name)
对我来说,一切正常,HTML被解析,图像被正确下载,图像路径被验证,但没有图像变化。我使用双显示器,这是我唯一能想到的。我不使用任何特殊配置。我也在使用最新的beta nvidia驱动程序,不要认为这很重要。我也用compiz。 Ubuntu 12.04 x86。
gsettings get org.gnome.desktop.background picture-uri
该行也正确返回正确的壁纸图片。