kurrunk

不停转圈的人

让Linux中的壁纸自动更新

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

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

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

写个PHP脚本

<?php
error_reporting(1);
require_once 'simplepie.inc';
$feed = new SimplePie('http://1x.com/rss/rss.php', 'cache');
$i=0;
$max = $feed->get_item_quantity();
$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");
curl_setopt($curl, CURLOPT_FILE, $fp);
curl_setopt($curl,CURLOPT_URL,"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");
curl_setopt($curl, CURLOPT_FILE, $fp);
curl_setopt($curl,CURLOPT_URL,"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忘的差不多了。

2 条评论 发表在“让Linux中的壁纸自动更新”上

  1. 涉水轻舟 说道:

    哈,我已经看不懂这些了……

留下回复