3.3 KiB
3.3 KiB
wayrustlock
A premium, high-performance Wayland screen locker written in Rust, designed to replicate and exceed the capabilities of swaylock-effects while ensuring stability on modern compositors like Niri and Sway.
Features
- Blazing Fast Performance: Written in 100% safe Rust for maximum efficiency and security.
- Advanced Visual Effects:
- Gaussian Blur: Highly optimized blur effect for your desktop background.
- Vignette: Add a professional vignette effect to darken the edges of your screen.
- Fade-in Animation: Smooth transition from your desktop to the lock screen.
- Iconic swaylock-effects UI:
- Dynamic Rotating Highlights: Premium visual feedback as you type, with segments that appear at random angles and rotate dynamically.
- Internal Information Hub: A perfectly centered clock, date, and system uptime indicator inside the ring.
- Custom Colors: Full control over ring, inside, separator, and highlight colors.
- Robust Logic:
- Niri Compatibility: Fixed protocol violations that cause red screens on Niri.
- Pre-lock Screenshot: Captures your desktop before locking to ensure visual effects work perfectly even if the compositor hides surfaces immediately.
- Grace Period: Configurable unlock grace period for convenience.
- Safe Exit: Always waits for the compositor's confirmation before exiting, preventing session corruption.
- Permanent Logging: Verbose debug logs are always captured in
~/.wayrustlock.logfor immediate troubleshooting.
Usage
Basic Command
wayrustlock --screenshots --effect-blur 7x5 --effect-vignette 0.5:0.5
Full Configuration Example
wayrustlock \
--screenshots \
--clock \
--indicator \
--indicator-radius 100 \
--indicator-thickness 7 \
--effect-blur 7x5 \
--effect-vignette 0.5:0.5 \
--ring-color 785412 \
--key-hl-color 4EAC41 \
--line-color 00000000 \
--inside-color 00000088 \
--separator-color 00000000 \
--grace 2 \
--fade-in 0.2
Configuration File
You can also provide settings via a configuration file located at ~/.config/wayrustlock/config.toml. Note that CLI arguments always take precedence over the config file.
Options
| Option | Description |
|---|---|
--screenshots |
Enable desktop background capture. |
--clock |
Show the centered clock and uptime. |
--indicator |
Show the password indicator ring. |
--indicator-radius |
Radius of the indicator ring (default: 100). |
--indicator-thickness |
Thickness of the indicator ring (default: 7). |
--effect-blur |
Gaussian blur settings (e.g., 7x5 for radius 7, 5 passes). |
--effect-vignette |
Vignette settings (e.g., 0.5:0.5 for base:factor). |
--ring-color |
Color of the outer ring (RRGGBB[AA]). |
--inside-color |
Color of the inner circle (RRGGBB[AA]). |
--key-hl-color |
Color of the key highlight segments (RRGGBB[AA]). |
--grace |
Unlock grace period in seconds (default: 2). |
--fade-in |
Fade-in animation duration in seconds (default: 0.2). |
Installation
Ensure you have a Rust toolchain and the necessary Wayland development libraries installed, then run:
cargo build --release
The binary will be available at target/release/wayrustlock.
License
MIT / Apache 2.0