从煎蛋看见这个sentense.me的,图片做得挺好看,遂萌发自动下载后随机替换桌面背景的想法。
稍微写一下正则就可以解决了。以下为代码。请确保系统装有wget、feh,并建立一个wallpapers目录作为存放图片的目录。另外其中的1280×800是适合我屏幕的分辨率,你可以根据你自己屏幕分辨率更改:
#!/bin/sh wget http://sentense.me/ -O - -q |\ sed -n 's/.*"\([^"]*1280x800[^"]*\.png\)".*/http:\/\/sentense.me\1/p'|\ wget -i - -P wallpapers -nc -q cd wallpapers set -- * length=$# random_num=$(( $RANDOM % ($length + 1) )) #echo ${!random_num} DISPLAY=:0.0 feh --bg-scale ${!random_num} |
可以将这个脚本加入crontab,或者在系统每次登录时执行
其中随机取文件那部分是从网上找的sniplet…其实我没看懂…
广告:请关注我的VPN服务~http://yegle.net/openvpn/

我也看不懂,所以我用python融合了一下…
[回复]
我来发下Python和Windows版本的吧…… Python3.0貌似不支持PIL,我是用xnview的converter把png转成bmp的……缩进好像乱了,额
import urllib.request
import re
import random
import os
from ctypes import windll
def download(url, path):
urllib.request.urlretrieve(url, path)
def setWallPaper(pathToImage):
result = windll.user32.SystemParametersInfoA(20, 0, pathToImage, 0)
if not result:
raise Exception(“Unable to set wallpaper.”)
repo_base = “http://sentense.me/wallpapers/”
picture = “wallpaper.png”
pattern = re.compile(‘[^"]*1280×1024-d{8}.png’)
page_in_bytes = urllib.request.urlopen(repo_base).read()
page = str(page_in_bytes)
links = pattern.findall(page)
#choose a random picture to download
chosen = random.choice(links)
url = repo_base + chosen
print(“Downloading wallpaper’s chosen picture from ” + url)
download(url, picture)
#Call external png2bmp to convert formats
os.system(“nconvert -out bmp ” + picture)
#Change current wallpaper using Win32 API
setWallPaper(“wallpaper.bmp”)
[回复]
Gnome下的 ^ ^
#!/bin/sh
wget http://sentense.me/ -O – -q |\
sed -n ‘s/.*”\([^"]*1280×800[^"]*\.png\)”.*/http:\/\/sentense.me\1/p’|\
wget -i – -P ~/.wallpapers -nc -q
cd ~/.wallpapers
set — *
length=$#
random_num=$(( $RANDOM % ($length + 1) ))
random_num=”/home/usr/.wallpapers/”${!random_num}
#echo $random_num
gconftool-2 -t str -s /desktop/gnome/background/picture_filename $random_num
#DISPLAY=:0.0 feh –bg-scale ${!random_num}
exit
[回复]
其实这个脚本是这样的:
set — * 这句将命令行参数设置成当前目录下的所有文件(–代表选项结束,后面都是参数; * 其实等于 ./* )
这时$1 ~ $($#)里存放着当前目录下所有文件的文件名
$RANDOM是shell的内置随机数
后面就很容易看懂了
[回复]