如何配置lightdm屏幕锁仅在系统挂起(suspend)时触发,休眠(hibernate)时不触发?
如何配置lightdm屏幕锁仅在系统挂起(suspend)时触发,休眠(hibernate)时不触发?
我明白你的痛点——休眠后还要输两次密码确实够麻烦的!下面给你两种可行的解决方案,你可以根据自己的lightdm版本来选:
方法一:直接修改lightdm配置文件(适用于较新版本)
很多新版lightdm已经支持单独控制挂起和休眠时的锁屏行为,步骤很简单:
- 打开终端,用管理员权限编辑lightdm的主配置文件:
sudo nano /etc/lightdm/lightdm.conf - 找到
[Seat:*]段落(如果没有就手动添加这一行),在下面添加或修改这两个配置项:lock-on-suspend=true lock-on-hibernate=false - 按
Ctrl+O保存,Ctrl+X退出编辑器。 - 重启lightdm服务使配置生效(注意:这会注销当前用户,记得先保存好所有工作):
sudo systemctl restart lightdm
方法二:用systemd钩子脚本自定义控制(兼容旧版本)
如果你的lightdm版本不支持单独配置锁屏选项,可以通过systemd的睡眠钩子来手动控制:
创建自定义控制脚本
- 新建一个脚本文件:
sudo nano /usr/local/bin/lightdm-lock-control.sh - 粘贴以下内容:
#!/bin/bash case "$1" in suspend) # 挂起前触发屏幕锁 dm-tool lock ;; hibernate) # 休眠时不触发锁屏操作 ;; resume|thaw) # 恢复状态无需额外操作 ;; esac - 给脚本添加执行权限:
sudo chmod +x /usr/local/bin/lightdm-lock-control.sh
- 新建一个脚本文件:
创建systemd服务文件
- 新建服务配置文件:
sudo nano /etc/systemd/system/lightdm-lock-control.service - 粘贴以下内容:
[Unit] Description=Control LightDM screen lock on suspend/hibernate Before=sleep.target StopWhenUnneeded=yes [Service] Type=oneshot RemainAfterExit=no ExecStart=/usr/local/bin/lightdm-lock-control.sh %i [Install] WantedBy=sleep.target - 保存退出后,重新加载systemd配置并启用服务:
sudo systemctl daemon-reload sudo systemctl enable lightdm-lock-control.service
- 新建服务配置文件:
禁用lightdm默认的休眠锁服务(如果存在)
- 检查并禁用默认的休眠锁服务:
sudo systemctl mask lightdm-lock-on-hibernate.service
- 检查并禁用默认的休眠锁服务:
测试验证
配置完成后,分别测试挂起和休眠:
- 触发挂起(比如按电源键或执行
sudo systemctl suspend),恢复后应该需要输入lightdm屏幕锁密码; - 触发休眠(执行
sudo systemctl hibernate),恢复后只需要输入系统解锁密码(如果你的系统启用了休眠密码),无需再输入lightdm屏幕锁密码。
备注:内容来源于stack exchange,提问作者Ronald
相关产品推荐
相关产品推荐

