如何在从休眠状态恢复后锁定屏幕?

如何在从休眠状态恢复后锁定屏幕?

我已经能够成功地休眠并恢复我的 Ubuntu 12.04 台式电脑,使用我记录在这个答案中。但是,我现在遇到一个问题,每当 PC 恢复时,它才不是锁定屏幕。

系统从休眠状态恢复后如何锁定屏幕?

答案1

~/.bashrc我在文件中添加了一个别名

alias hibernate='sudo echo "Hibernating..."; gnome-screensaver-command -l; sudo pm-hibernate;'

这样它就会锁定屏幕冬眠。

答案2

我可以使用以下命令解决此问题

sudo pm-hibernate; gnome-screensaver-command -l

请注意,你应该以普通用户身份运行而不能以 root 用户身份进行锁定工作,因为在 Ubuntu 中默认情况下,root 用户没有密码,因此恢复后,只需摇动鼠标即可解锁锁屏。

答案3

我有另一种解决方法。我刚刚复制了/etc/acpi/sleep.sh/etc/acpi/hibernate.sh内容pm-hibernate

if [ x$LOCK_SCREEN = xtrue ]; then
    if pidof xscreensaver > /dev/null; then
    for x in /tmp/.X11-unix/*; do
        displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`
        getXuser;
        if [ x"$XAUTHORITY" != x"" ]; then
        export DISPLAY=":$displaynum"
        . /usr/share/acpi-support/screenblank
        fi
    done
    fi
fi

现在我可以通过电源菜单或睡眠按钮锁定来休眠

答案4

有一个更好的方法,使用 systemd 在休眠前自动锁定屏幕

在 中创建一个文件,/etc/systemd/system/lock-on-hibernate.service 内容如下:

[Unit]
Description="Make extra sure to lock the screen when hibernating"

[Service]
Type=oneshot
ExecStart=loginctl lock-sessions

[Install]
WantedBy=hibernate.target

然后启用它

sudo systemctl daemon-reload
sudo systemctl enable lock-on-hibernate.service 

现在 hibernatw 就像正常一样systemctl hibernate 它将在您恢复之前自动锁定您的屏幕

注意:我使用的是 Fedora 37,您的系统可能使用不同的休眠系统。因此,请确保您使用正确的WantedBy目标。(例如WantedBy=systemd-hibernate.target

相关内容