在arch / systemd的关闭盖上悬挂并锁定屏幕


22

关闭盖子并锁定屏幕并挂起的最直接方法是什么?我正在使用事件挂钩,/etc/systemd/logind.conf并在关闭盖子后成功挂起。但是,在锁定部分上我迷失了方向-我是否应该启用某些屏幕保护程序服务,如何才能一次触发两个事件logind.conf


在范围之外,所以我要评论:在i3中,将键绑定分配给命令非常容易。由于mod+L已经分配给blurlock我,因此很容易mod+Sblurlock && systemctl suspend -i代替。因此,不是在关闭盖子时,而是可以很好地选择我是要锁定还是锁定并悬挂。
pzkpfw

Answers:


17

Arch Wiki中有几个示例。

基本上,它涉及到创建你的屏幕更衣室一个服务文件,并确保它钩住要么suspendhibernatesleep目标。

如果您使用像slock这样的简单屏幕锁,/etc/systemd/system/lock.service将如下所示:

[Unit]
Description=Lock the screen on resume from suspend

[Service]
User=jason
Environment=DISPLAY=:0
ExecStart=/usr/bin/slock

[Install]
WantedBy=suspend.target

Wiki上的其他示例具有更复杂的选项,包括关闭和启动其他服务等。


谢谢,我看到了那个例子,但没有意识到该ExecStart=/usr/bin/slock位指的是乍一看。
pldimitrov

如果我暂停并返回,则X显示管理器具有屏幕锁定,那就太好了。但是我的tty呢?如果我已登录但又暂停了工作却忘记退出ttys,人们可以切换到那里继续操作,该怎么办。
CMCDragonkai

@CMCDragonkai,您想要physlock然后...
jasonwryan

1
这确实有效,但前提是您是系统的唯一用户。一种更干净的解决方案是使用xss-lock(可在Debian,Arch Linux中使用;也可以在下周使用Fedora),然后与i3lock或一起以用户身份运行slock
Martin Ueding '16

1
@MartinUeding和@jasonwryan User是硬编码的。假设此机器仅由jason(或例如知道他的密码的人,例如他的女朋友)使用。理想情况下,我们想User成为发起暂停的人,但我还没有找到解决方案(尚未)。
罗尔夫(Rolf)'18

1

如果openrc与with一起使用,elogind则有另一种解决方案(不依赖于systemd):

#!/bin/sh
#
# /lib/elogind/system-sleep/lock.sh
# Lock before suspend integration with elogind

username=lerax
userhome=/home/$username
export XAUTHORITY="$userhome/.Xauthority"
export DISPLAY=":0.0"

case "${1}" in
        pre)
            su $username -c "/usr/bin/slock" &
            sleep 1s;
            ;;
esac

参考:https : //gist.github.com/ryukinix/bd0c1ddcbbafdb4149ae70e41b7c822b

我发布此消息是因为很难找到它的正确工作方式,并且该线程出现在Google关于“暂停后锁定”之类的最初结果中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.