Ubuntu 20.04 (Gnome3 / LighDM) > 挂起时锁定屏幕

B. *_*ray 8 suspend lock-screen lightdm 20.04

这可能是[重复],但我发现没有一个答案适合我。

brieucdug@sildenafil:~$ uname -a ; gnome-shell --version ; lightdm --version
Linux sildenafil 5.4.0-31-generic #35-Ubuntu SMP Thu May 7 20:20:34 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
GNOME Shell 3.36.2
lightdm 1.30.0
Run Code Online (Sandbox Code Playgroud)

我不知道从什么时候开始,我怀疑它是随着安装而来的lightdm,我的屏幕没有超时锁定,也没有暂停(盖子关闭,这就是我第一次发现问题的方式)。我确认当我合上盖子时我的计算机确实进入暂停状态。

brieucdug@sildenafil:~$ gsettings list-recursively  | grep -i -E "screen.*lock|lock.*screen"
com.canonical.unity.settings-daemon.peripherals.touchscreen orientation-lock false
org.gnome.settings-daemon.peripherals.touchscreen orientation-lock false
org.gnome.desktop.privacy usb-protection-level 'lockscreen'
org.gnome.desktop.lockdown disable-lock-screen false
org.gnome.desktop.notifications show-in-lock-screen true
org.gnome.Vino lock-screen-on-disconnect false
org.gnome.desktop.screensaver ubuntu-lock-on-suspend true
org.gnome.desktop.screensaver lock-enabled true
org.gnome.desktop.screensaver lock-delay uint32 0
Run Code Online (Sandbox Code Playgroud)

我的设置中还有一个屏幕... 屏幕锁定设置

注意:我已经尝试编辑,/etc/systemd/logind.conf但我愿意接受建议

Tho*_* W. 6

将以下内容另存为/etc/systemd/system/lock-on-wakeup.service

[Unit]
Description=Lock screen when waking up
Before=sleep.target suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

[Service]
Type=oneshot
ExecStart=dm-tool lock ; sleep 2
Environment=XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0

[Install]
WantedBy=sleep.target suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target
Run Code Online (Sandbox Code Playgroud)

然后使用以下命令激活它:

[Unit]
Description=Lock screen when waking up
Before=sleep.target suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

[Service]
Type=oneshot
ExecStart=dm-tool lock ; sleep 2
Environment=XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0

[Install]
WantedBy=sleep.target suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target
Run Code Online (Sandbox Code Playgroud)

sleep 2inExecStart=应防止系统在锁屏激活生效之前进入睡眠状态(这将导致用户的桌面在唤醒后、锁屏实际激活之前的一瞬间可见)。如果这还不够,请增加该值。(进行sudo systemctl daemon-reload任何修改后运行。)可能有比睡眠更合适的解决方案来确保锁定屏幕有效。

有用的资源尤其是: