挂起/合上盖子后屏幕未锁定

挂起/合上盖子后屏幕未锁定

合上笔记本电脑盖后,屏幕不会锁定。笔记本电脑暂停,但屏幕未锁定。

我检查了多个设置:

gnome-control-center > brightness & lock > lock on and require password when waking from suspend enabled
dconf-editor > org/gnome/desktop/lockdown/disable-lock-screen disabled
dconf-editor > org/gnome/desktop/screensaver/lock-enabled enabled
dconf-editor > org/gnome/desktop/screensaver/ubuntu-lock-on-suspend enabled

但暂停后无法锁定屏幕。我还能尝试什么?

答案1

这不是一个解决方案,但您可以使用此脚本作为解决方法:

#!/bin/bash
qdbus com.canonical.Unity /com/canonical/Unity/Session com.canonical.Unity.Session.Lock &&
qdbus com.canonical.Unity  /com/canonical/Unity/Session com.canonical.Unity.Session.Suspend

这适用于带有 Unity 桌面的 Ubuntu 原版。该方法特定于 Unity,尽管dbus无论桌面环境如何,都有暂停调用。对于 16.04 ,可以使用systemctl suspend命令。请参阅相关帖子:https://askubuntu.com/a/1795/295286

替代方案(旧答案,已编辑)

另一个适用于任何 Ubuntu 版本的挂起工具是pm-suspend。问题是它需要 root 权限。要解决这个问题,请将 pm-suspend 添加到/etc/sudoers无需密码即可执行的文件中(更多信息这里)。

具体来说,/etc/sudoers我有以下几点:

# Allow using pm-suspend for my user without password
serg ALL = NOPASSWD: /usr/sbin/pm-suspend

因此,您可以使用:

sh -c 'gnome-screensaver-command -l && sudo pm-suspend'

那么将sudo pm-suspend不会提示您输入密码。

答案2

我遇到了类似的问题答案解决了我的问题。安装 Unity Tweak Tool,然后在系统 > 安全中取消勾选所有选项。桌面锁被勾选,在我的情况下取消勾选。

取消选中

如果勾选了上述选项,那么在系统设置>亮度和锁定中,锁定选项将被禁用,这会导致所有问题。

锁定选项

答案3

如何通过命令行用一行代码锁定屏幕并使计算机进入睡眠状态(可以分配给 Ubuntu 快捷键)

在 Ubuntu 22.04 上测试。

这不是问题的直接答案,但它可能会对某些人有所帮助:

您可以使用如下命令锁定屏幕并使计算机进入睡眠状态:

# lock the screen and put the computer to sleep
sudo true && gnome-screensaver-command -l && sudo pm-suspend

如果您想快速让计算机进入睡眠状态,可以将上述命令分配给快捷键。

使用上述命令让您的计算机进入睡眠状态后,您可以唤醒计算机并验证它是否已进入睡眠状态,如下所示:

journalctl -n 1000 -e | grep "PM: suspend"

您将看到一些暂停条目。以下是我的一个示例运行和输出。检查时间戳以确保这是您刚刚执行的暂停:

$ journalctl -n 1000 -e | grep "PM: suspend"
Jun 25 23:07:02 gabriel-my-computer-name kernel: PM: suspend entry (s2idle)
Jun 25 23:07:17 gabriel-my-computer-name kernel: PM: suspend exit

上面第一个命令的解释以及它如何工作:

  1. sudo true提示用户输入密码以运行 sudo。输入密码后sudo,密码会被临时缓存。true这是一条始终要传递的虚拟命令。因此,继续执行下一个命令。
  2. gnome-screensaver-command -l运行为-sudo,锁定用户会话的屏幕。
  3. 现在屏幕已锁定,sudo pm-suspend运行以暂停系统。它使用您sudo输入的缓存密码,该密码在您运行 时已缓存sudo true

诀窍是sudo true首先使用缓存的密码,因为一旦屏幕被锁定,您显然无法输入密码,并且gnome-screensaver-command -l 必须运行为须藤!

什么不是去做

不要这样做!它会冻结你的电脑并需要硬重启,你必须按住电源按钮:

# bad: this locks up your computer; freezes laptop!; requires hard reboot
sudo pm-suspend && gnome-screensaver-command -l

参考

  1. 我第一次了解到sudo pm-suspend和的地方journalctl大致是:https://learnubuntumate.weebly.com/draining-battery.html

也可以看看

  1. 我的简短回答引用了这一点:如何从命令行暂停/休眠?

相关内容