www.bing.com 的网页壁纸很漂亮,有没有好的办法自动下载下来。我也曾经看到过一些讨论,但没有试验成功。
已经有很多方案,如 https://github.com/marguerite/linux-bing-wallpaper
如果只是想下载,可以将此链接中脚本大幅精简,只保留负责下载图片的代码。
将以下代码保存为 fetchbingbg.sh,置于 $PATH 中,chmod +x 之
可手动执行下载,或置于 crontab 中定期运行。
可修改参数如分辨率(picRes)、保存目录(saveDir)
如需自动设置壁纸,再讨论。
#!/bin/bash
bing="www.bing.com"
idx="0"
mkt="zh-CN"
xmlURL="http://www.bing.com/HPImageArchive.aspx?format=xml&idx=$idx&n=1&mkt=$mkt"
picRes="1920x1080"
picExt=".jpg"
picURL=$bing$(echo $(curl -s $xmlURL) | grep -oP "<urlBase>(.*)</urlBase>" | cut -d ">" -f 2 | cut -d "<" -f 1)_$picRes$picExt
picName=${picURL##*/}
saveDir=$HOME'/Pictures/Bing/'
mkdir -p $saveDir
curl -o $saveDir$picName -L $picURL
我都是直接从网页源码中找出链接然后右键保存的:imp:
昨天,我还想着写个脚本下载bing壁纸:grin:
又被vickycq解决了。
居然看到了我自己的项目:joy:
看来在这里提交issue即可。
再次修改如下:
#!/bin/bash
picDir="$HOME/Wallpaper/Bing/"
bing=“www.bing.com”
picRes=“1920x1080”
picExt=".jpg"
mkt=“zh-CN”
if [ “$XDG_CURRENT_DESKTOP” = “GNOME” ];then
setBG=“gsettings set org.gnome.desktop.background picture-uri file://”
elif [ “$XDG_CURRENT_DESKTOP” = “MATE” ];then
setBG="gsettings set org.mate.background picture-filename "
elif [ “$XDG_CURRENT_DESKTOP” = “XFCE” ];then
setBG="xfconf-query -c xfce4-desktop -p /backdrop/screen0/monitor0/workspace0/last-image -s "
elif [ “$XDG_CURRENT_DESKTOP” = “LXDE” ];then
setBG=“pcmanfm --set-wallpaper=”
else
setBG="feh --bg-scale "
fi
if [ ! -x “$picDir” ];then
mkdir -p $picDir
fi
for idx in {0…7}
do
xmlURL=“http://www.bing.com/HPImageArchive.aspx?format=xml&idx=$idx&n=1&mkt=$mkt”
picURL=$bing$(echo $(curl -s $xmlURL) | grep -oP "(.)" | cut -d “>” -f 2 | cut -d “<” -f 1)_$picRes$picExt
picName=${picURL##/}
if [ ! -f “$picDir$picName” ];then
curl -o $picDir$picName -L $picURL
fi
if [ “$1” = “” ];then
$setBG$picDir$picName
notify-send “必应壁纸” “今日更新壁纸$picName”
exit
fi
picWeek[idx]=$picDir$picName
done
if [ “$1” = “week” ];then
rewid=$(echo xdpyinfo | grep dimensions | sed -r 's/^[^0-9]*([0-9]+x[0-9]+).*$/\1/'
| sed -r ‘s/x.//’)
rehei=$(echo $(xdpyinfo | grep dimensions | sed -r 's/^[^0-9]([0-9]+x[0-9]+).*$/\1/’) | sed -r 's/.x//’)
swid=$(echo “$rewid / 8”|bc)
shei=$(echo “$swid / 1.7”|bc)
bwid=$rewid
bhei=$(echo “$shei + 10”|bc)
feh -B black -x -g $bwid"x"$bhei"+"$rewid"+"$rehei -N -t --index-info “” -y $swid -E $shei -W $bwid -H $bhei ${picWeek[]} -A ";$setBG$picDir%n ;notify-send “必应壁纸” “已更换壁纸$picName” "
fi
由于没有安装相关桌面上面关于不同桌面的简单设置仅供参考 具体请参阅苏姐的脚本
这个脚本非常好啊,我都一直是用原有的壁纸的,哈哈,保存一下,回头也换换。这个做个crontab?一日一执行吗?