Commit Graph
44 Commits
Author SHA1 Message Date
Samuel Onoja 0162870cca Add focus history and Alt-Tab window switching 2026-10-01 16:00:23 +01:00
Samuel Onoja cbf048566a Split shell, settings, and compositor into focused modules 2026-10-01 12:47:26 +01:00
Samuel Onoja b29d271252 Add floating placement memory and edge snapping 2026-10-01 11:24:56 +01:00
Samuel Onoja 3d950a0411 Add resolved appearance engine and paired theme settings
Resolve light, dark and automatic appearance centrally and publish live theme snapshots to native surfaces and the appearance portal. Add paired preset families, custom theme imports, accessibility transforms and contrast-safe transitions.

Refine the Settings gallery and Auto controls, move overrides under advanced customization, and share palette-aware switches and circular slider thumbs. Document configuration and include theme licenses and integration coverage.
2026-09-30 12:51:49 +01:00
Samuel Onoja 46509f880a Fix compositor output routing and pointer hints; format imports 2026-09-30 06:39:58 +01:00
Samuel Onoja d26e1511d1 Implement native InputCapture with private EIS receiver transport
Add consent, zones and outside-edge barriers, connection-scoped leases, bounded input queues and keyboard/pointer forwarding. Restore local input on release, locking, topology or keymap changes, receiver loss and emergency escape. Preserve held-key state and distinguish finger stops from absent scroll axes.

Validation: independent review cleared; 5 native InputCapture unit tests; 32 portal tests; official D-Bus contract checks on a private bus; real installed libei receiver interoperability test. Live physical barrier and consent interaction remain to be checked in a desktop session.
2026-09-30 04:51:08 +01:00
Samuel Onoja 29a71e9974 Implement native inhibition and acknowledged session-ending confirmation 2026-09-30 02:38:54 +01:00
Samuel Onoja c8ed8e6c30 Add configurable session-scoped global shortcut portal 2026-09-29 23:32:41 +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 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