1 个不稳定版本
0.1.0 | 2023年12月29日 |
---|
#529 in Unix APIs
68KB
1.5K SLoC
megalock: X11 xlock 替代品
目前,这是一个在 Rust 中实现最小 xlock 替代品的底层。它仅与 X11 兼容,但执行以下功能:
- 无论监视器配置如何,都会使整个屏幕变暗
- 捕获键盘和指针设备
- 将所有输入缓冲到密码中
- 通过 PAM 执行所有密码检查
- 按下回车键时,验证密码
- 成功时,程序退出
- 失败时,程序清除密码字段并继续
- 此外,以下环境变量也被尊重
TRACE=1
:启用 Trace(最低)级别调试DEBUG=1
:启用 Debug 级别日志记录 -- 大多数状态更改,但没有原始数据EXIT_TRAP=n
:在n
秒后强制终止程序
显示锁屏时不会显示事件指示。目前正在修复此问题。
事件都是合成的,然后被翻译成 X11 调用,在一个专用线程中。这应该使得在不破坏 X11 合同的情况下轻松移植到 wayland 成为可能,使 megalock
能够与两个系统本地工作。
优化后的二进制文件大小约为 730k,这是一个令人愉快的发现。我们将看看这个是否可行。
PAM 配置
如果您使用 megalock
,请确保将 contrib/megalock 放在 /etc/pam.d
中,以便 megalock 能够有效地使用 PAM 子系统。 megalock
可能不会在 OpenBSD 上工作。
谢谢
特别感谢 Michael Stapelberg,他写了 i3lock
,我在学习如何编写此程序时花了很多时间阅读它。
作者
Erik Hollensbe [email protected]
许可证
MIT
依赖关系
~1.3–3.5MB
~62K SLoC