xss-lock、loginctl lock-sessions 和 xsecurelock 在 Arch 上无法协同工作

xss-lock、loginctl lock-sessions 和 xsecurelock 在 Arch 上无法协同工作

我在 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如你所见,除了因不活动而锁定外,没有任何用处

相关内容