iDickies
吞吐世界
iDickies

NAS探索之旅 篇一:20240614更新 自动更换群晖登录页及桌面背景图

本文参考以下文章:

1、群晖登录界面壁纸与卓面壁纸自动替换为 bing 每日美图

2、每天自动更换群晖登陆背景(换个心情登陆)_NAS存储

3、把群晖DSM7.X的登录界面美化成半透明 – GXNAS博客

4、如何获取 bing 每日壁纸(超高清版) – blog_bug – 博客园

20240614 更新

这几天发现bing壁纸越看越糊,想起来之前接口返回的都是低清壁纸(1080p),现在显示设备都是4k,手机都至少2k,已经不够看了,所以上网查了查,稍微修改了点代码,把低清照片接口改成UHD地址。

20220916 更新

美化登录页样式:更改登录框为半透明。

我是参考教程直接ssh进群晖后台操作的,并从作者地址把两个css相关文件下载到本地做替换,操作命令如下:

cd /usr/syno/synoman/webman/login/dist/
cp style.css style.css-bak
cp style.css.gz style.css.gz-bak
rm -rf style.css
rm -rf style.css.gz
cp [你下载的文件存放的绝对路径]/style.css style.css
cp [你下载的文件存放的绝对路径]/style.css.gz style.css.gz
chmod 755 style.css
chmod 755 style.css.gz
https://dickies.myds.me:56789/wp-content/uploads/2022/09/QQ截图20220916103525-1024x498.png
半透明的登录框

再打开登录页就看到新样式了,超级简单。

20220207 更新

由于bing壁纸api接口在2月1日发生变动,导致title值不为空,部分逻辑代码无法执行,使得文件名出现空格而无法保存图片的情况,已自行修复该部分逻辑代码。

20210602 更新

dsm 7.0版本更改了壁纸的路径,需要针对新路径做调整,详见最下方代码红色加粗部分。

背景

入手群晖已有2个月,对于桌面背景无法自动切换不是很满意,终于在网上找到一个折中的方案——每天定时从bing壁纸库拉取最新壁纸替换桌面背景,下面来说说怎么玩。

https://dickies.myds.me:56789/wp-content/uploads/2021/03/02f2c2bae5d3e95-1024x494.png

使用脚本前请先设置任意自带壁纸为背景。

一、添加计划任务

1.打开计划任务:

https://dickies.myds.me:56789/wp-content/uploads/2021/03/c4ca4238a0b9238.png

2.新增计划任务:

https://dickies.myds.me:56789/wp-content/uploads/2021/03/c81e728d9d4c2f6.png

3.记得选择root用户:

https://dickies.myds.me:56789/wp-content/uploads/2021/03/eccbc87e4b5ce2f.png

更改计划:

https://dickies.myds.me:56789/wp-content/uploads/2021/03/a87ff679a2f3e71-1.png

二、添加脚本

添加脚本:

https://dickies.myds.me:56789/wp-content/uploads/2021/03/e4da3b7fbbce234-1.png

dsm 6.x 版本脚本如下(暂不维护,止于20220916):

#user 输入自己的用户名,用于设置替换桌面壁纸与保存下来的文件权限
user="当前用户的用户名"

#如需设置用户桌面壁纸为每日美图去掉下面 wallpaper 注释,然后随意指定一张图片为壁纸
wallpaper="/usr/syno/etc/preference/$user/wallpaper"

#如需收集每日美图去掉下面 savepath 注释并设置保存文件夹路径
savepath="/volume1/photo/image/BingWallpaper"

#以下内容无需修改
pic=$(wget -t 5 --no-check-certificate -qO- "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-cn")
echo $pic|grep -q enddate||exit
link=$(echo https://www.bing.com$(echo $pic|sed 's/.\+"url"[:" ]\+//g'|sed 's/".\+//g'))

# 增加超清图片下载地址 20240614
link_uhd=$(echo https://www.bing.com$(echo $pic|sed 's/.\+"urlbase"[:" ]\+//g'|sed 's/".\+//g')_UHD.jpg)

date=$(echo $pic|sed 's/.\+enddate[": ]\+//g'|grep -Eo 2[0-9]{7}|head -1)
tmpfile=/tmp/$date"_bing.jpg"

# 更换超清图片下载地址 20240614
wget -t 5 --no-check-certificate $link_uhd -qO $tmpfile

[ -s $tmpfile ]||exit
rm -rf /usr/syno/etc/login_background*.jpg
cp -f $tmpfile /usr/syno/etc/login_background.jpg &>/dev/null
cp -f $tmpfile /usr/syno/etc/login_background_hd.jpg &>/dev/null
title=$(echo $pic|sed 's/.\+"title":"//g'|sed 's/".\+//g')
copyright=$(echo $pic|sed 's/.\+"copyright[:" ]\+//g'|sed 's/".\+//g')
word=$(echo $copyright|sed 's/(.\+//g')
if [ ! -n "$title" ];then
cninfo=$(echo $copyright|sed 's/,/"/g'|sed 's/,/"/g'|sed 's/(/"/g'|sed 's/ //g'|sed 's/\//_/g'|sed 's/)//g')
title=$(echo $cninfo|cut -d'"' -f1)
word=$(echo $cninfo|cut -d'"' -f2)
fi
sed -i s/login_background_customize=.*//g /etc/synoinfo.conf
echo "login_background_customize=\"yes\"">>/etc/synoinfo.conf
sed -i s/login_welcome_title=.*//g /etc/synoinfo.conf
echo "login_welcome_title=\"$title\"">>/etc/synoinfo.conf
sed -i s/login_welcome_msg=.*//g /etc/synoinfo.conf
echo "login_welcome_msg=\"$word\"">>/etc/synoinfo.conf
#替换桌面壁纸
if (echo $wallpaper|grep -q '/') then
cp -f $tmpfile $wallpaper
fi
#复制图片到保存文件夹
if (echo $savepath|grep -q '/') then
cp -f $tmpfile $savepath/$date@$title-$word.jpg
#修改图片的权限
chown $user:users $savepath/$date@$title-$word.jpg
#为保存的图片建立索引
synoindex -a $savepath/$date@$title-$word.jpg
fi
rm -rf /tmp/*_bing.jpg

dsm 7.0及以上版本 脚本如下(更新于20240614)

#user 输入自己的用户名,用于设置替换桌面壁纸与保存下来的文件权限
user="当前用户的用户名"

#如需设置用户桌面壁纸为每日美图去掉下面 wallpaper 注释,然后随意指定一张图片为壁纸
#注意:7.0版本更改了壁纸的路径,需要用如下路径
#评论区网友提醒,第一次执行需要新建这两个文件,建议先定位到目录下查看是否已存在
wallpaper="/usr/syno/etc/preference/$user/wallpaper_dir/wallpaper"
wallpaper_hd="/usr/syno/etc/preference/$user/wallpaper_dir/wallpaper_hd"

#如需收集每日美图去掉下面 savepath 注释并设置保存文件夹路径
savepath="/volume1/photo/image/BingWallpaper"

#以下内容无需修改
pic=$(wget -t 5 --no-check-certificate -qO- "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-cn")
echo $pic|grep -q enddate||exit
link=$(echo https://www.bing.com$(echo $pic|sed 's/.\+"url"[:" ]\+//g'|sed 's/".\+//g'))

# 增加超清图片下载地址 20240614
link_uhd=$(echo https://www.bing.com$(echo $pic|sed 's/.\+"urlbase"[:" ]\+//g'|sed 's/".\+//g')_UHD.jpg)

date=$(echo $pic|sed 's/.\+enddate[": ]\+//g'|grep -Eo 2[0-9]{7}|head -1)
tmpfile=/tmp/$date"_bing.jpg"

# 更换超清图片下载地址 20240614
wget -t 5 --no-check-certificate $link_uhd -qO $tmpfile

[ -s $tmpfile ]||exit
rm -rf /usr/syno/etc/login_background*.jpg
cp -f $tmpfile /usr/syno/etc/login_background.jpg &>/dev/null
cp -f $tmpfile /usr/syno/etc/login_background_hd.jpg &>/dev/null
title=$(echo $pic|sed 's/.\+"title":"//g'|sed 's/".\+//g')
copyright=$(echo $pic|sed 's/.\+"copyright[:" ]\+//g'|sed 's/".\+//g')

#注释该部分代码
#word=$(echo $copyright|sed 's/(.\+//g')
#if [ ! -n "$title" ];then
#cninfo=$(echo $copyright|sed 's/,/"/g'|sed 's/,/"/g'|sed 's/(/"/g'|sed 's/ //g'|sed 's/\//_/g'|sed 's/)//g')
#title=$(echo $cninfo|cut -d'"' -f1)
#word=$(echo $cninfo|cut -d'"' -f2)
#fi

#调整为如下
cninfo=$(echo $copyright|sed 's/,/"/g'|sed 's/,/"/g'|sed 's/(/"/g'|sed 's/ //g'|sed 's/\//_/g'|sed 's/)//g')
word=$(echo $cninfo|cut -d'"' -f1)-$(echo $cninfo|cut -d'"' -f2)
#如果title值为空,则从cninfo中取值
if [ ! -n "$title" ];then
title=$(echo $cninfo|cut -d'"' -f1)
word=$(echo $cninfo|cut -d'"' -f2)
fi

sed -i s/login_background_customize=.*//g /etc/synoinfo.conf
echo "login_background_customize=\"yes\"">>/etc/synoinfo.conf
sed -i s/login_welcome_title=.*//g /etc/synoinfo.conf
echo "login_welcome_title=\"$title\"">>/etc/synoinfo.conf
sed -i s/login_welcome_msg=.*//g /etc/synoinfo.conf
echo "login_welcome_msg=\"$word\"">>/etc/synoinfo.conf
#替换桌面壁纸
if (echo $wallpaper|grep -q '/') then
cp -f $tmpfile $wallpaper
fi
#注意:7.0版本新增了一个hd结尾的壁纸,需要同步替换
if (echo $wallpaper_hd|grep -q '/') then
cp -f $tmpfile $wallpaper_hd
fi
#复制图片到保存文件夹
if (echo $savepath|grep -q '/') then
cp -f $tmpfile $savepath/$date@$title-$word.jpg
echo $date壁纸:$title-$word >> [自定义文件夹路径]/bing-log.txt 2>&1
echo $pic >> [自定义文件夹路径]/json/$date壁纸:$title-$word.txt 2>&1

# 追加下载链接写日志 20240614
echo "低清图片下载地址:"$link >> [自定义文件夹路径]/json/$date壁纸:$title-$word.txt 2>&1
echo "超清图片下载地址:"$link_uhd >> [自定义文件夹路径]/json/$date壁纸:$title-$word.txt 2>&1

#修改图片的权限
chown $user:users $savepath/$date@$title-$word.jpg
#为保存的图片建立索引
synoindex -a $savepath/$date@$title-$word.jpg
fi
rm -rf /tmp/*_bing.jpg

4.计划任务要保存,不保存是不会起效的。

https://dickies.myds.me:56789/wp-content/uploads/2021/03/1679091c5a880fa.png

确保计划任务已经保存并启动:

https://dickies.myds.me:56789/wp-content/uploads/2021/03/8f14e45fceea167.png

手动运行一次看看效果:

https://dickies.myds.me:56789/wp-content/uploads/2021/03/c9f0f895fb98ab9.png

赞赏
# # # #
首页      科技      NAS      NAS探索之旅 篇一:20240614更新 自动更换群晖登录页及桌面背景图

老鬼迪克

文章作者

黑夜给了我黑色的眼睛,而我却用它,寻找光明。

发表回复

textsms
account_circle
email

  • QZ

    发现改不了桌面壁纸了。不知道为什么。之前都正常。

    3 年前 回复
    • @QZ: 是不是系统自动升级了,看下系统版本以及目录下的文件等

      3 年前 回复
      • QZ

        @老鬼迪克: 嗯,现在升级到7.0.1-42218 update3。发现登录页正常更改,壁纸换不了了。

        3 年前 回复
        • @QZ: 看看我文章前头说的,以及代码部分的注释,看是不是有同样问题

          3 年前 回复
          • QZ

            @老鬼迪克: 找到原因了。第一次运行前先手动创建那两个文件夹即可。

            2 年前
          • @QZ: 搜嘎,可能我是已经有了,所以才不需要新建,感谢验证回复,回头我加到文章里

            2 年前
  • cnice

    壁纸是会更换了,但是无法保存图片到指定目录。已经注释了,也设置了目录。。。

    3 年前 回复
    • @cnice: 考虑权限问题,是不是无法写入指定的目录,另外,看下是不是在写入前后有报错

      3 年前 回复
  • 小喵太

    老大 求助您,我对代码一窍不通, 我按照您给的7.0代码复制并且修改了用户名和壁纸文件夹路径.
    手动运行了一次. 并没有替换.
    我不太明白那些说 去掉注释 是什么意思.
    劳烦您 能帮忙在给说说么. 我是哪里做的不对.

    3 年前 回复
  • 老m

    想问下 这个只能修改登录界面的壁纸 控制面板>登录门户>应用程序 这里 背景图片不会修改 图片的欢迎信息就第一次会修改以后就不会更新了。欢迎标题也是

    3 年前 回复
    • @老m: 我一直用得好好的,可能是你哪里设置不对,我是登录页和桌面背景图都会变,欢迎信息也是每天都在变的,你再检查下自己的代码部分,可能需要理解下每行代码的意思

      3 年前 回复
      • 老m

        @老鬼迪克: 这个我知道 我的也正常,我说的是 控制面板>登录门户>应用程序 File Station 这个登录页面的背景图片和 信息会自动更换。

        3 年前 回复
      • 老m

        @老鬼迪克: 控制面板>登录门户>应用程序 File Station 这个登录页面的背景图片和 信息不会自动更换

        3 年前 回复
        • @老m: 噢,这个确实不行,没深入研究,应该也是可以做到的

          3 年前 回复
          • 老m

            @老鬼迪克: 嗯 我也是这两天一直在鼓捣这东西,但是对于代码部分 知之甚浅 一头雾水,网上找了别人DSM7.0的自动更换登录的代码 和你这个 对比着修改 尝试添加路径 但是都无效 哎 希望 博主能尽早攻克难题。

            3 年前
          • @老m: 理论上只要能找到对应的文件就能解决,等有空研究看看了

            3 年前
  • yche2990

    咋都没法成功,我不太理解wallpaper_hd=”/usr/syno/etc/preference/$user/wallpaper_dir/wallpaper_hd”,好像没有这个路径,具体要指哪个图

    3 年前 回复
    • @yche2990: 肯定有这个路径,这个就是默认的壁纸路径,定时任务就是每天定时去把bing壁纸下载下来写入到这个这个路径,替换默认壁纸,实现壁纸的自动切换

      3 年前 回复
      • lukemin

        @老鬼迪克: /usr/syno/etc/preference/$user/下 没有 wallpaper_dir/wallpaper 和 wallpaper_hd文件夹,需要自己建立吗?

        3 年前 回复
  • 小文

    哇哦,这方法不错呀

    4 年前 回复

iDickies

NAS探索之旅 篇一:20240614更新 自动更换群晖登录页及桌面背景图
入手群晖已有2个月,对于桌面背景无法自动切换不是很满意,终于在网上找到一个折中的方案——每天定时从bing壁纸库拉取最新壁纸替换桌面背景。
扫描二维码继续阅读
2021-03-17