我正在尝试将运行 LUbuntu 18.04 的笔记本电脑配置为首先进入登录屏幕,然后在显示登录屏幕后暂停。这样做的原因是,简单地暂停然后在恢复时显示登录屏幕的默认设置会导致在恢复时显示登录屏幕之前延迟大约 5 秒,而如果在机器暂停时登录屏幕已经启动,它几乎可以在简历上立即使用。
无论如何,我一直在研究如何做到这一点,似乎我最好的选择是在盖子关闭时简单地运行一个脚本,它首先调用,dm-tool lock
然后在需要等待登录屏幕显示时延迟,然后systemctl suspend
。
但是,如何将关闭盖子的动作链接到运行此脚本?根据我的研究,这似乎是acpid
要走的路。通过阅读手册页,似乎需要在被/etc/acpi/events
调用的可执行脚本lidbtn
。该目录存在于我的系统上,但不存在这样的脚本,并且手册页不清楚它需要包含的确切内容。查看此目录中的其他脚本,似乎我需要知道为“event =”行放置什么,但我在任何地方都没有找到它。
还提到了处理此事件的窗口管理器,目前尚不清楚我需要做什么来确保我的脚本不会与此冲突。在常规选项卡下的 Xfce 电源管理器(菜单 -> 首选项 -> 电源管理器)下,我看到“当笔记本电脑盖关闭时”...暂停,但唯一的其他选择是“关闭显示”和“锁定屏幕”。“什么都不做”别无选择。我需要在这里做什么?每当我可能创建的 acpid 脚本被执行之前或之后,请求的操作是否会发生,或者这是否完全覆盖了这一点?
首先,我创建了一个
/etc/acpi/events/laptop-lid
包含以下内容的新文件:然后我创建了
/etc/acpi/laptop-lid.sh
包含以下代码:在
$HOME/.Xdbus
我输入以下内容:我制作了
/etc/acpi/laptop-lid.sh
可执行文件(chmod a+x
)。然后我跑了
/etc/init.d/acpid restart
最后,我进入 XFCE 电源管理器并在笔记本电脑盖合上时将其设置为“关闭显示器”,以避免与我改进的新功能发生冲突。
但是,我发现还是有一个问题——退出挂起后,会显示登录屏幕,然后机器又会挂起。经过一番搜索,我认为这是由于 Ubuntu 中的一个错误显然仍然存在于 18.04 中。我通过检查自从我尝试睡眠 5 秒以来是否已经过去了超过 6 秒,如果是,我不暂停。看起来我的笔记本电脑实际上会在 2 秒内挂起,所以这对我来说总是有效的。我尝试将 Xfce 设置为锁定屏幕,但它似乎也没有兑现这一点——在这两种情况下,我的机器都在 2 秒内暂停,而我的脚本应该强制它至少等待 5 秒。
更新:
做了这一切之后,我还是完全不满意。因为我的 XFCE 电源管理器设置基本上被忽略了,导致机器在我合上盖子时总是处于睡眠状态,这会在睡眠过程和 dm 工具创建欢迎程序的距离之间产生竞争条件,这总是会导致一些延迟在该过程完成启动欢迎程序时恢复。所以我完全取消了上述所有工作,而是做了以下工作:
编辑
~/.config/openbox/lubuntu-rc.xml
. 找到锁定屏幕的键绑定并将其更改为切换到欢迎程序。这样做的主要效果似乎是不关闭显示,这对于让迎宾员在恢复时立即出现似乎很重要:现在,我没有关上盖子,而是点击Win+L,当迎宾员出现时,我就关上盖子。
注意:我想要一个单独的脚本,首先切换到欢迎程序,然后暂停,但似乎无论我如何尝试暂停(systemctl、dbus 等),他们都拒绝在没有手动干预的情况下从锁定屏幕暂停- 从对话框输入密码 - 因为我们处于锁定屏幕,所以无法满足!