Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/erikh/megalock
Locks your screen and requires a password to enter
https://github.com/erikh/megalock
i3lock lock x11 xlock
Last synced: about 1 month ago
JSON representation
Locks your screen and requires a password to enter
- Host: GitHub
- URL: https://github.com/erikh/megalock
- Owner: erikh
- License: mit
- Created: 2023-12-27T22:40:55.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-01-03T03:14:55.000Z (about 1 year ago)
- Last Synced: 2024-11-28T07:35:06.984Z (about 2 months ago)
- Topics: i3lock, lock, x11, xlock
- Language: Rust
- Homepage:
- Size: 40 KB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# megalock: X11 xlock replacement
This currently is a substrate for a minimal xlock replacement in Rust. It is only functional with X11, but performs the following functions:
- Blanks the entire screen regardless of monitor configuration
- Grabs the keyboard and pointing devices
- Buffers all input into a password
- Backspace removes the previously entered characters, walking back to the beginning of the buffer
- Upon pressing enter, verifies that password
- On success, the program exits
- On failure, the program clears the password field and continues
- Performs all password checking through PAM
- Additionally, the following environment variables are respected:
- `TRACE=1`: Enable Trace (lowest) level debugging; includes passwords in plain text
- `DEBUG=1`: Enable Debug level logging -- most status changes, but no raw data
- `EXIT_TRAP=n`: Forcefully terminate the program after `n` secondsIt performs no indication of events while displaying the lock screen. This is
being worked on now.Events are all synthetic, which are then translated to X11 calls in a dedicated thread. This should allow for easy porting to wayland later without breaking the X11 contract, allowing `megalock` to work with both systems natively.
Optimized binary size is about 730k, which was a nice discovery. We'll see if that sticks.
## Installation
```
cargo install megalock
```Debian and RedHat packages will come soon!
### PAM configuration
If you use `megalock`, be sure to put [contrib/megalock](contrib/megalock) in `/etc/pam.d` so that megalock can use the PAM subsystem effectively. `megalock` may not work on OpenBSD.
## Thanks
Special thanks to Michael Stapelberg, who wrote `i3lock`, I spent a lot of time reading it while learning how to write this program.
## Author
Erik Hollensbe
## License
MIT