让Linux中的壁纸自动更新

我的linux桌面一直是黑漆漆的,有一年多没用壁纸了,今天心血来潮了。

1x.com的图片很漂亮,格调简单。 这文章写的就是怎么把1x.com的美图自动设置为自己的桌面,而且这是自动的。 有一点需要注意,1x.com的图片尺寸有限,如果你的显示分辨率大了可能显示效果不会很好(我的800x600显示效果还不错)。

软件环境是:archlinux+openbox+feh。

写个PHP脚本

getitemquantity(); $curl = curl_init(); while($i<$max){ $item=$feed->get_item($i); $url=$item->get_permalink(); $id=ereg_replace("[0-2|4-9]+D","",$url); $fp = fopen('tmp-thumb.jpg', "w"); curlsetopt($curl, CURLOPTFILE, $fp); curlsetopt($curl,CURLOPTURL,"http://1x.com/pictures/$id-thumb.jpg"); curl_exec($curl); fclose($fp); $xy= getimagesize('tmp-thumb.jpg'); if($xy[0]>$xy[1]){ $fp = fopen('/home/kurrunk/kurrunk.well/1x.jpg', "w"); curlsetopt($curl, CURLOPTFILE, $fp); curlsetopt($curl,CURLOPTURL,"http://1x.com/OEfullSize/$id-fullsize.jpg"); curl_exec($curl); fclose($fp); break; } $i++; } curl_close($curl); ?> 其中用到了rss解析工具“simplepie”,还有curl。 把脚本保存到一个目录下。

写个sh用来执行php脚本,并更新桌面

shell文件的内容是: export DISPLAY=:0.0 feh –bg-scale ~/kurrunk.well/1x.jpg php ~/dwell/uw.php

上面的路径根据具体情况设置。

增加可执行属性: $chmod +x kurrunk.scripts/well.sh

加入计划任务中

创建cron文件,内容为: 0 */2 * * * kurrunk.scripts/well.sh这里任务间隔是2个小时。

激活crontab: $sudo -u kurrunk crontab kurrunk.scripts/well.cron

查看任务是不是加入了: $sudo -u kurrunk crontab -l

开机更新壁纸

这个如果不设置的话,初开机时可能是没有壁纸的。

在.config/openbox/autostart.sh加入: kurrunk.scripts/well.sh 如果要求不高的话也没必要设置计划任务,开机时更新一次就好了。

题外话:本来想用python写的,两分钟过去我没有反应,明白了自己已经把python忘的差不多了。