自动下载bing壁纸

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解决了。:slight_smile:

居然看到了我自己的项目: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?一日一执行吗?