动态登陆背景,锁屏背景图
用的是SDDM显示管理器,但是基本原理和操作应该是共通的。
首先,重要路径是/usr/share/sddm/themes/breeze,其中的breeze按需替换
为主题名字。这个文件夹下有两种配置文件,theme.conf和
theme.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 # 确认成功