Gaussian blur applied at texture load time when `background-blur` is set in the [appearance] section of moongreet.toml. Blur runs once, result is shared across monitors.
1.3 KiB
1.3 KiB
Decisions
2026-03-28 – Optional background blur via image crate
- Who: Selene, Dom
- Why: Blurred wallpaper as greeter background is a common UX pattern for login screens
- Tradeoffs: Adds
imagecrate dependency (~15 transitive crates); CPU-side Gaussian blur at load time adds startup latency proportional to image size and sigma. Acceptable because blur runs once and the texture is shared across monitors. - How:
load_background_texture(bg_path, blur_radius)loads texture, optionally appliesimageops::blur(), returns blurredgdk::Texture. Config optionbackground-blur: Option<f32>in[appearance]TOML section.
2026-03-28 – Audit fixes for shared wallpaper texture (v0.4.1)
- Who: Selene, Dominik
- Why: Quality, performance, and security audits flagged issues in
load_background_texture(), debug logging, and greetd error handling - Tradeoffs: GResource path now requires UTF-8 (returns
Nonefor non-UTF-8 instead of aborting); 50 MB wallpaper limit is generous but prevents OOM; debug logging off by default trades observability for security - How: GResource branch via
resources_lookup_data()+from_bytes()(no abort), file size limit, error details only at debug level,MOONGREET_DEBUGenv var for log level, greetd retry path truncation matchingshow_greetd_error()