ubuntu锁屏壁纸需固定一张图且不模糊,gsettings设置screensaver路径已失效;正确方法是用ubuntu-gdm-set-background脚本或修改gdm3.css并重启gdm3,图片须放系统路径且禁用css blur滤镜。

Ubuntu 的「自动锁屏壁纸」不是系统原生概念——它不会随桌面壁纸自动轮播,也不会从幻灯片列表里随机选一张来当锁屏图。你要的其实是「固定一张图作为锁屏壁纸」,且确保它不被模糊、不被覆盖、不因重启或 GNOME 更新而失效。
gsettings 设置 lock-screen picture-uri 为什么经常失效
很多人用 gsettings set org.gnome.desktop.screensaver picture-uri 'file:///path/to/wallpaper.jpg' 后发现锁屏没变,或者重启后恢复默认。这是因为:
- GNOME 实际读取的是
org.gnome.desktop.background picture-uri(桌面壁纸)+ 毛玻璃叠加逻辑,而非 screensaver 下的配置项; -
org.gnome.desktop.screensaver在较新 GNOME(42+)中已被弃用,部分发行版(如 Ubuntu 22.04/24.04)完全忽略该路径; - 路径必须是绝对路径,且文件需对
gdm用户(锁屏进程运行身份)可读——/home/xxx/下的图片默认不可访问; - URI 必须以
file://开头,且不能含空格或中文(否则 URI 解析失败,日志里看不到报错但实际不生效)。
真正生效的锁屏壁纸设置方式(Ubuntu 22.04+)
正确做法是直接修改 GNOME Shell 主题层的背景资源,或用兼容性更强的脚本注入 GDM 配置。推荐以下两种路径:
- 用
ubuntu-gdm-set-background脚本(支持 Ubuntu 22.04–24.04):
下载后chmod +x ubuntu-gdm-set-background,然后sudo ./ubuntu-gdm-set-background /usr/share/backgrounds/my-wallpaper.jpg;
注意:图片必须放在/usr/share/backgrounds/或/opt/等系统路径下,不能在用户家目录; - 手动替换 GDM 主题背景:
备份原文件:sudo cp /usr/share/gnome-shell/theme/gdm3.css /usr/share/gnome-shell/theme/gdm3.css.bak;
编辑/usr/share/gnome-shell/theme/gdm3.css,找到#lockDialogGroup区块,在background:行后插入:background-image: url("resource:///org/gnome/shell/theme/my-wallpaper.jpg");;
把图片复制到/usr/share/gnome-shell/theme/,再sudo systemctl restart gdm3。
去模糊、禁用毛玻璃效果的关键点
即使锁屏图设对了,你看到的仍是泛白模糊图——这不是 bug,是 GNOME 默认启用的 blur 滤镜。绕过它不能只靠扩展(如 Control Blur Effect),因为:
- GNOME 44+ 已移除 blur 控制 API,多数旧扩展在 Ubuntu 24.04 上根本无法启用;
- 真正有效的方式是改 CSS:
在/usr/share/gnome-shell/theme/gdm3.css中搜索filter:或blur(,注释掉或删掉整行;
例如把filter: blur(20px);改成/* filter: blur(20px); */; - 改完必须重启 GDM(
sudo systemctl restart gdm3),仅注销或重载 Shell 不生效; - 如果用了自定义主题,还要检查
~/.themes/xxx/gnome-shell/gdm3.css是否覆盖了系统级设置。
最易被忽略的一点:GDM 进程不读取用户家目录下的任何配置或图片,所有资源路径必须是全局可读、无权限限制的系统路径。哪怕你 chmod 755 了图片,只要它在 /home 下,GDM 就加载失败——这点和桌面环境完全不同。











