kurrunk

不停转圈的人

文章关键字 ‘feh’

让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忘的差不多了。

小巧、强大的图片浏览器:Feh

Feh是一个轻量级、强大、具有很高的可配置性的、命令行操作的图像查看器,同时它也可以用来管理桌面壁纸,特别适合缺少这类特性的独立窗口管理器,如openbox、Fluxbox、awesome(似乎是标配)等。

图片浏览

要快速的浏览指定目录里的图像,你可以用以下参数启动feh:

$feh -g 640×480 -D 5 -d -S filename /path/to/directory

  • -g 选项强制图像的显示大小不大于640×480
  • -D 自动播放时间间隔,单位是秒
  • -d 显示文件名
  • -S filename 选项按文件名排列图像

制作拼贴画

要将目录的图片拼成一张大图可以这样:

$feh -m -X -y 50 -E 50 -W 500 -o out.jpg /path/to/directory

  • -m 生成拼贴画
  • -X 不保留宽高比
  • -y 缩小后的宽度
  • -E 缩小后的高度
  • -W 指定拼贴画的宽度
  • -o 拼贴画的输出
  • /path*** 图片来源

管理背景图片

以我用的openbox为例,首先在~下新建文件“.fehbg”,内容为:

feh –bg-scale /path/image.jpg

然后在“~/.config/openbox/autostart.sh”添加:

eval `cat ~/.fehbg` &

也可以在.xinitrc中启动feh。

相关链接

想了解更多请“$feh -help”。