Commit Graph
7 Commits
Author SHA1 Message Date
Samuel Onoja 46509f880a Fix compositor output routing and pointer hints; format imports 2026-09-30 06:39:58 +01:00
Samuel Onoja 35537b32c8 Dim and sleep locked displays after inactivity
Add adjustable lock-only inactivity delays, a smooth dimming fade and DRM display sleep without changing output layout. Input, session resume and policy changes wake displays. Pending flips retire before power-off, and protected fallback frames preserve the policy after an early locker crash while unlock ownership checks remain strict.

Reduce the password field and avatar, expose delays in Settings, document the practical swaylock comparison and remove the completed backlog.

Validation: independent review cleared; 255 compositor tests, 7 locker tests and 15 Settings tests pass; affected debug binaries rebuilt. Isolated visual smoke remains blocked by an unlocked nested screenshot timeout, matching the previously established baseline presentation limitation. Real DRM display sleep requires a live session check.
2026-09-30 05:10:04 +01:00
Samuel Onoja 915bc8afd6 Add native appearance, screenshot and wallpaper portals 2026-09-29 22:42:27 +01:00
Samuel Onoja b2363a18b0 Share native theme components and fix dialog backdrop blur
Centralize native palettes, presets, typography, controls, menus, calendar rendering, and icon assets in ferese-theme. Reuse the shared components across the shell, settings, lock screen, authentication prompt, and screen-sharing chooser.

Attach themed dialogs to compositor-owned materials, correct backdrop capture and sampling across output transforms, smooth patterned backgrounds, and prevent clipped picker buttons with the configured shell font.
2026-09-29 21:19:19 +01:00
Samuel Onoja 67192c0c04 Speed up per-frame layout, hit testing, and stacking paths
Split ScrollingLayout validation so the per-frame geometry solve only
checks scalars and keeps the full tree validation behind debug_assert,
removing a HashSet build from every frame. Replace the per-region Vec
in decode_regions with a stack array via as_chunks, and skip the window
hit test in PointerMotion when Overview is not presenting, where
visual_scale_for_window returns 1.0 regardless.

Guard sync_window_stacking behind a check that the space already matches
the target order with uniform z_index, avoiding an O(n^2) raise_element
loop on every redraw. Narrow window_under_visual to the space iterator
outside Overview, keeping the collected and sorted candidate list for
the Overview branch where front-to-back order is load-bearing.

Raise rust-version to 1.98 and clear the resulting Clippy findings
across the workspace: let-chain collapses, clamp, and while-let loops.
2026-09-29 09:49:04 +01:00
Samuel Onoja 24e15f76cb Centralize accent foreground contrast across Ferese UI 2026-09-28 08:58:51 +01:00
Samuel Onoja f8b8704f8b Add native themed session locker and Settings integration 2026-09-27 12:15:55 +01:00