From ae47a562bd423df856ec6c735d9e4c29a8e1e3c6 Mon Sep 17 00:00:00 2001 From: srdusr <99972264+srdusr@users.noreply.github.com> Date: Thu, 20 Nov 2025 17:10:00 +0200 Subject: Redesign the native lock screen: clock/avatar header, on-screen keyboard, wrong-password shake The native lock UI was a flat bordered rectangle with three left-aligned text lines and no shadow, clock, or identity marker - reported directly as looking unfinished. Splits the redesign across a new transparent-canvas header (time, date, circular avatar, username) above a redesigned, centered password box with a real drop shadow and a dimmed placeholder prompt, plus a genuine on-screen QWERTY-shaped keyboard with working Shift/Backspace/Return/Space and real click hit-testing shared with the render path via one `lock_stack_layout` function, and a damped-sine shake on a failed attempt. LockConfig gains show_clock/show_keyboard/avatar_bg, each independently srd.set-able and documented in a new theme.lock.* section in DEFAULTS.md. native_lock_render_elements now takes one NativeLockFrame struct instead of positional buffer arguments now that it composites five optional layers instead of two. Full workspace build/test/clippy clean (152 wayland tests, +6 new). --- crates/wayland/Cargo.toml | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'crates/wayland/Cargo.toml') diff --git a/crates/wayland/Cargo.toml b/crates/wayland/Cargo.toml index 5eb82ac..3e2c40d 100644 --- a/crates/wayland/Cargo.toml +++ b/crates/wayland/Cargo.toml @@ -55,6 +55,12 @@ xkbcommon = { version = "0.8", features = ["wayland"] } resvg = "0.48.1" usvg = "0.48.1" tiny-skia = "0.12.0" +# `native_lock.rs`'s own clock/date: `libc::localtime_r` gives the +# system's real local time (respecting `/etc/localtime`/`TZ`), which +# `std::time` alone has no way to do (`SystemTime` is UTC-only). Already +# a transitive dependency of this crate (smithay itself depends on it), +# just not previously used directly. +libc = "0.2" [dependencies.smithay] version = "0.7" -- cgit v1.2.3