Skip to content

动态登陆背景,锁屏背景图

用的是SDDM显示管理器,但是基本原理和操作应该是共通的。

首先,重要路径是/usr/share/sddm/themes/breeze,其中的breeze按需替换 为主题名字。这个文件夹下有两种配置文件,theme.conftheme.conf.user。背景图片由background=<path>来制定。不确定的话就都 改。这个path貌似还不能是特定用户下的/home/<username>里,所以我选择保 留原本的图片路径来覆盖。

lock screen的默认背景路径在哪个config里写的,我愣是没找到,不过可以在 系统设置Screen Locking里把图片路径改成自己的。

虽然依靠系统设置可以改背景,不过不能实现这个蛋疼需求:随机切换背景,达 成每次休眠/开机/登出后都有惊喜。我的思路是,每次登出的时候跑一个script, 随机复制一个图片替换掉conf里写死的图片。为了保证权限,我把这个图片改成 了开放权限:sudo chmod a+w wallpaper.jpg这样的。

总结下来,我需要让一个script随机修改两个图片:

/usr/share/sddm/themes/sequoia_2/sddm.jpg
/home/$USER/.config/wallpaper/lock.jpg

以下这样就可以了,存为logout.sh,改为可执行chmod +x logout.sh,在系 统设置,autostart里,加入登出时运行脚本即可。

#!/bin/bash

path=/home/yli/.config/wallpaper/candidates

lock=$(ls $path | shuf -n 1)

sddm=$(ls $path | shuf -n 1)

cp "$path/$sddm" /usr/share/sddm/themes/sequoia_2/sddm.jpg
cp "$path/$lock" /home/yli/.config/wallpaper/lock.jpg

后来又加了一个systemd job,每小时跑一次,这样不需要登出也会自动更新图片。 KDE可以用自带的设置工具随机切换桌面,其它的可能需要手动,用crontab或者 systemd定时更新。

插播:快速改图片格式可以用imageMagick,例子:

magick sample.jpg sample.png
display sample.png # 确认成功