我在 arch 上安装了 xsecurelock,我可以通过运行来锁定会话xsecure lock
。但是尝试使用 锁定loginctl lock-session
没有任何效果(没有错误,只是没有输出,也没有锁定)。
根据我所做的研究,loginctl lock-session
大概是正在调用xss-lock
,但我不知道如何配置 xss-lock 以知道它应该使用 xsecurelock 作为锁定器。
运行xss-lock
抱怨没有指定储物柜,并且运行xss-lock xsecurelock
只是挂起。
答案1
运行 xss-lock xsecurelock 就挂起了。
是的,这就是它应该做的事。
重点loginctl lock-session[s]
是它没有跑步直接执行任何操作;相反,它会向已经在桌面会话中运行的程序广播“锁定”信号 - 基本上告诉桌面环境锁定自身。(这巧妙地避免了尝试从外部启动锁定器时可能遇到的所有“缺少环境变量”问题。)
因此,“xss-lock”旨在作为后台进程(守护进程)永久运行,仅在会话级别,而不是系统级别。您可以从 ~/.xprofile 将其用作&
后台进程启动,也可以从窗口管理器的“自动运行”设置(几乎所有窗口管理器都有)启动它。
例如,如果您使用 i3,则应将其添加exec xss-lock xsecurelock
到 ~/.i3/config。或者,如果您使用“startx”启动所有内容,则应将其添加到xss-lock xsecurelock &
~/.xinitrc 中的某个位置。
答案2
正如所描述的这里 xss-lock
挂起,因为它等待DPMS signaling
触发。正如用户 1686 所说,您需要&
在命令后面加上~/.xinitrc
或~/.xprofile
(无论您使用什么)以避免xss-lock
挂起(否则您可能最终会挂起整个会话)。
如果您想手动锁定,则没有必要使用xss-lock
。您可以直接xsecurelock
从终端使用,也可以根据您的 DE/WM 将其绑定到密钥。
因此,例如由于不活动而自动锁定是有意义的xss-lock
。为了做到这一点,您需要使用xset
我发布的链接中提到的方法。以下是我设置的方法(我使用 LightDM 的dm-tool lock
命令来锁定会话)。
~/.xinitrc
# Some other things ...
xset s on
xset s 300 # Signal after 5 minutes / 300 seconds of inactivity
xss-lock dm-tool lock &
# Your's would be xss-lock xsecurelock &
如果我想直接从终端锁定,我只需使用dm-tool lock
或在我的 WM 的配置中设置一个键绑定来调用dm-tool lock
。
xss-lock
如你所见,除了因不活动而锁定外,没有任何用处