Commit Graph
36 Commits
Author SHA1 Message Date
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 08a586612f Schedule redraws for pending wallpaper upload retries 2026-09-27 07:08:49 +01:00
Samuel Onoja 4da59f3906 Debounce config reloads only after filesystem notifications 2026-09-27 07:08:03 +01:00
Samuel Onoja b469929847 Wake the event loop when wallpaper decoding completes 2026-09-27 07:06:15 +01:00
Samuel Onoja 6dd132a4a5 Load overview fonts off the compositor event loop 2026-09-27 07:04:05 +01:00
Samuel Onoja dbdfc5688e Fix screenshots and workspace switching; add configurable swipe bindings 2026-09-27 05:21:52 +01:00
Samuel Onoja 23991d5bd8 Add native Settings and complete live configuration reload
Add compact branded Settings with safe atomic edits, external config refresh and a draggable sidebar. Reconcile services, update connected displays and input devices, apply live layout policy and window rules, and resolve initial floating placement before tiled insertion. Package the Settings launcher and shared Ferese icon.
2026-09-26 20:31:05 +01:00
Samuel Onoja 672b4e2b60 Add live config reload, session locking and managed daemons
Refine focus gradients, shell workspace controls and popup motion. Correct floating stacking and preserve client-chosen dialog sizes. Add lock protocol probes and session integration.
2026-09-26 19:03:37 +01:00
Samuel Onoja b422448d88 Add centered workspace thumbnails to overview
Render a tinted, scrollable workspace strip with live thumbnails, output-scaled font labels and a subtle selected-workspace outline. Keep the window grid background-free and support workspace selection without exiting overview.

Animate strip opacity independently with precise fade tolerances and continuous reversal, and expose toggle-overview through feresectl.
2026-09-26 15:13:13 +01:00
Samuel Onoja 0709484efb Overhaul resize presentation and wallpaper rendering
Coordinate native-pixel resize handoffs, fractional geometry and shared animation timing. Delegate wallpaper rendering to the compositor, advertise DMA-BUF device feedback, and improve callback pacing and render metrics.

Handle monitor-local shell surfaces, lid-driven output evacuation and workspace restoration.
2026-09-26 14:50:14 +01:00
Samuel Onoja 48ac963ffe Add configurable inactive dimming and viewport-paged scrolling 2026-09-26 09:41:55 +01:00
Samuel Onoja b3fa82b53b Refine shell status controls and glass rendering; defer cursor redraw safely 2026-09-26 05:05:50 +01:00
Samuel Onoja 4a6d91980c feat: add modern shell top bar 2026-09-25 07:47:56 +01:00
Samuel Onoja 3384cfde0f feat: add compositor overview scene 2026-09-25 06:44:07 +01:00
Samuel Onoja 75ae44c1d7 feat: add private shell control protocol 2026-09-25 06:33:48 +01:00
Samuel Onoja a6ec721437 feat: gate semantic effects by client capability 2026-09-25 05:08:18 +01:00
Samuel Onoja 6d19932a64 fix: unify animated presentation and stacking 2026-09-25 04:57:39 +01:00
Samuel Onoja 07de17a399 feat: configure and inspect DRM outputs 2026-09-25 04:32:19 +01:00
Samuel Onoja 4eb456fb2b feat: report optional render performance metrics 2026-09-25 04:19:08 +01:00
Samuel Onoja 5bdb7bdf24 feat: render theme-aware window borders 2026-09-25 03:17:17 +01:00
Samuel Onoja d6acfa89e7 feat: add authenticated IPC and feresectl 2026-09-25 03:11:18 +01:00
Samuel Onoja 3d0007ba12 feat: apply validated window rules 2026-09-25 03:02:50 +01:00
Samuel Onoja 29af1bec9c feat: configure commands and key bindings 2026-09-25 02:57:36 +01:00
Samuel Onoja 2f83c58040 feat: configure keyboard and touchpad input 2026-09-25 02:50:19 +01:00
Samuel Onoja 94a83c83bb fix: preserve default outer gaps 2026-09-25 02:43:53 +01:00
Samuel Onoja ed529ae900 feat: animate scrolling workspace viewports 2026-09-25 02:41:19 +01:00
Samuel Onoja 7f92b6d634 feat: configure animation policy 2026-09-25 02:18:17 +01:00
Samuel Onoja 5e6c9c3d9d feat: complete scrolling layout controls 2026-09-25 02:14:04 +01:00
Samuel Onoja 9d90415e55 feat: make scrolling the active default layout 2026-09-25 02:08:04 +01:00
Samuel Onoja df884cb623 feat: render named cursor images 2026-09-25 00:53:48 +01:00
Samuel Onoja dccf83c8fa docs: add direct session validation runbook 2026-09-24 16:45:57 +01:00
Samuel Onoja c50dd98685 feat: initialize direct session backend 2026-09-24 16:15:11 +01:00
Samuel Onoja e963b82a9e refactor: simplify compositor startup types 2026-09-24 11:22:09 +01:00
Samuel Onoja 0cc0488257 feat: support interactive window move and resize 2026-09-24 06:02:25 +01:00
Samuel Onoja 475d433ec4 feat: add nested Phase 0 compositor 2026-09-24 05:38:18 +01:00
Samuel Onoja aab447ef25 build: scaffold Ferese workspace 2026-09-24 05:32:44 +01:00