我的标题可能有点误导,因为我实际上没有访问工作计算机的权限,因此我无法验证它是否真的在另一台计算机上工作,但有人通过 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
该行也正确返回正确的壁纸图像。