7603975062
- Extract all apply_* effect methods from screenshot.rs into dedicated
src/effects.rs (blur, vignette, pixelate, swirl) — screenshot.rs
- Rewrite apply_blur: replace broken fastblur::gaussian_blur (horizontal-
only box blur, backbuf dropped) with correct inline two-pass sliding-
window box blur operating directly on Cairo surface bytes — ~10×
faster, no ImageBuffer round-trip, no fastblur dependency
- Remove melting effect entirely (seems to be hard to implement
properely, tried multiple itterations)
- Drop unused dependencies: fastblur, rand
- Add clap_complete dependency + --completions {bash,fish,zsh} flag,
with CompletionShell enum in config.rs
- Fix show_* flags defaulting to true: remove default_value_t=true from
show_media, show_battery, show_network, show_bluetooth, show_album_art,
show_caps_lock_text — all now opt-in (matching user expectation)
- Convert peek toggle to hold: toggle_peek() → set_peek_held(held: bool),
Press calls set_peek_held(true), new Release handler iterates all
surfaces and calls set_peek_held(false), matching Ctrl-hold behavior
- Fix cursor rendering: increase font size 11→14 for peeked chars,
handle cursor_position == 0 (prevent negative t wrapping to far ring
end)
- Fix peek hit-test: use shape-aware point_in_shape() instead of simple
circle pill/square/diamond/hexagon now detect clicks correctly within
their area
- Remove per-frame DEBUG logs: PEEK/DOT mode in lock.rs,
set_password_display/peek_password in render/mod.rs
- Update README: embed rustlock-effects.webp demo, remove melting
references, correct show_* defaults and options table
49 lines
1.9 KiB
TOML
49 lines
1.9 KiB
TOML
[package]
|
|
name = "rustlock"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
license = "GPL-3.0-or-later"
|
|
authors = ["Jory Severijnse"]
|
|
description = "A high-performance Wayland screen locker"
|
|
|
|
[dependencies]
|
|
smithay-client-toolkit = { version = "0.19", default-features = false, features = ["calloop", "xkbcommon"] }
|
|
wayland-client = { version = "0.31" }
|
|
wayland-protocols = { version = "0.32", features = ["client"] }
|
|
wayland-protocols-wlr = { version = "0.3", features = ["client"] }
|
|
anyhow = "1.0"
|
|
cairo-rs = { version = "0.20", default-features = false, features = ["png"] }
|
|
gdk-pixbuf = { version = "0.20", default-features = false, features = ["v2_40"] }
|
|
pangocairo = { version = "0.20" }
|
|
clap = { version = "4.6", default-features = false, features = ["derive", "std", "help", "usage", "error-context"] }
|
|
clap_complete = { version = "4.6", default-features = false }
|
|
toml = { version = "1.1", default-features = false, features = ["parse", "display", "serde"] }
|
|
serde = { version = "1.0", default-features = false, features = ["derive", "std"] }
|
|
zeroize = "1.8"
|
|
log = "0.4"
|
|
chrono = { version = "0.4", default-features = false, features = ["clock", "std"] }
|
|
whoami = "1.6"
|
|
zbus = { version = "5.14", default-features = false, features = ["tokio"] }
|
|
mpris = "2.0"
|
|
tokio = { version = "1.51", default-features = false, features = ["rt", "rt-multi-thread", "macros", "time", "sync"] }
|
|
reqwest = { version = "0.12", default-features = false, features = ["blocking", "rustls-tls"], optional = true }
|
|
image = { version = "0.25", default-features = false, features = ["png", "jpeg"] }
|
|
pam-client = "0.5"
|
|
calloop = "0.13"
|
|
xkbcommon = "0.7"
|
|
calloop-wayland-source = "0.3"
|
|
resvg = { version = "0.42", default-features = false }
|
|
usvg = { version = "0.42", default-features = false }
|
|
tiny-skia = "0.11"
|
|
|
|
[features]
|
|
default = ["networking"]
|
|
networking = ["dep:reqwest", "tokio/net"]
|
|
|
|
[profile.release]
|
|
opt-level = "z"
|
|
lto = true
|
|
codegen-units = 1
|
|
panic = "abort"
|
|
strip = true
|