Repeated panel updates rebuilt unchanged controls and SVG artwork, cloned composition data, and kept unused workspace icon resources. This reuses controls when their layout stays the same, bounds the SVG cache, removes temporary layout allocations, and releases icon resources when apps close or the workspace style changes.
Rapidly closing a modal could also leave a native surface behind when its asynchronous creation finished after the close. Late openings now get destroyed when their owner is gone. Ferese uses the published `ferese-v0.1.2` Iced/libcosmic fixes so a temporary software buffer/viewport size mismatch retries the frame instead of crashing.
Two runs per version of the same workspace/overview/reload workload measured **26% fewer allocated bytes and 23% fewer allocation calls**. A separate 1,800-cycle notification/modal stress run retained about **40 MiB less shell memory**, including shared-buffer retention falling from 28.2 MiB to 272 KiB. These are measured workload results, not an overall desktop speedup claim.
Validation:
- 1,350 workspace tests passed, including GPU Settings text rendering (50 optional tests ignored); formatting and Clippy passed.
- Native continuous/island panel tests passed rapid notification resizing, modal cancellation, and live material/input-region changes.
- A Wayland lifetime trace confirmed all 280 created modal surfaces were destroyed; longer DHAT traces and Intel GPU memory measurements were checked separately.
- All installation binaries rebuilt and the installation bundle passed inventory and checksum verification.
* Integrate panel composition, adaptive sizing, and overflow
* Add instance editing controls to panel settings
* Add panel group editing and measured composition preview
* Reorganize panel settings and add drag-and-drop item editing
* Simplify panel settings and place inspectors beside the editor
* Refine Panel & Shell settings, previews, and panel rendering
* Organize settings navigation and modernize packaged panel config
* Support top and bottom panels and refine shell surfaces
Add edge-aware settings, previews, popup placement, notifications, margins, and corner rendering. Preserve translucency in notification and dialog controls, and tighten spacing around the clock and display-mode icon.
* Add workspace styles and fix Settings text rendering
* Make panel allocation independent of measurement order
* Normalize panel item settings and visibility
* Move shell geometry into each panel
* Add independent group surfaces and finalize panel configuration
* Keep panel fit checks and restoration consistent with allocation
* Reject unknown panel item options and namespace metadata
* Reject invalid shell startup configuration and remove old radius fields
* Discover workspace application icons in a background task
* Remove the panel architecture document and improve reference prose
* Let panel media fill available space and improve Settings scrolling
* Preserve panel labels across clipped GPU rendering
* Use matching alpine lake wallpapers for light and dark modes
* Fix panel accessibility and popup lifecycle
Apply Reduce Transparency to panel opacity in the shell, compositor, and
Settings preview. Reject unknown theme tokens before snapshot substitution
and validate the current geometry fields in both consumers.
Dismiss popovers and workspace tooltips after panel layout changes. Handle
bar pointer exits directly and recover workspace hover after reentry without
repeated motion updates. Cover the transitions with regression tests and
update the wallpaper dimensions check for the bundled lake defaults.
* Use tagged Ferese toolkit fixes
* Fix center-only panel spacing and headless text rendering
* Bundle native 4K abstract wallpapers for both appearances
* Dismiss workspace tooltips before captured pointer dispatch
* Verify installed JPEG wallpapers when replacing a release
Bound IPC transport deadlines while preserving portal leases, supervise desktop helper and agent recovery, and reserve final floating window geometry during placement.
Stabilize CLI output and isolated tests, expand workspace CI, resolve formatting and lint failures, and bundle the MIT license with installer compatibility.
* save dev state
* fix xwayland-satellite supervisor lifecycle, readiness and cleanup
* remove wayland scanner protocol generated files
* default xwayland enabled with path
* remove jargons
* address x11 review: park unconfirmed cleanup, never signal a reaped group, fix storm test and notify dir mode
* fix resize tests: never build Size values from negative dimensions
* add min-width/min-height window rules that replace client minimum sizes
* rename effective_size_constraints to effective_minimum_size and minor cleanups
Group workspaces with Overview and status controls with the clock. Keep themed backgrounds and borders around each island, with click-through gaps and configurable side padding defaulting to 4 px.
Capture blur within each panel region and update material and input regions when island bounds change. Cover layout reloads and padding changes with widget and native shell tests.
Allow installed releases to omit the two newer appearance wallpapers while keeping new bundle verification strict. Fit the Settings header symbol within its square slot without clipping.
Verified 30 installer tests, the real upgrade dry-run, and release rendering previews on GPU and software backends.
Update the Ferese symbols, appearance-specific wallpapers, and rounded wallpaper and theme previews. Bundle Figtree and add the Ferese name to the website header.
Verified configuration, theme, Settings, wallpaper and installer tests, both UI renderers, the static site build, and browser layouts.
Add capture privacy rules for windows, transient children, overview previews and client cursors, with separate capture rendering and deferred-frame invalidation. Keep detached close snapshots out of captures after clients leave the registry.
Validated with release workspace tests, private compositor/EGL regressions, and an isolated release PipeWire capture test.
Queue popup, modal and notification material geometry and opacity until the matching content buffer commits. Remove event-handler opacity writes that could present material state ahead of content, while preserving compositor dismissal ownership.
Add pending-presentation regression coverage and update the nested shell lifecycle check.
Share window geometry across overview, resize snapshots and retained closes. Advance close handoffs and group retained rendering by stacking position.
Drive shell motion from surface frames, reuse settled widget content, and synchronize notification materials with each card's fade. Replace physical config keys with duration and bounce, and update documentation and regression coverage.
Open the four display modes from XF86Display or the external-monitor bar icon. Reuse output reconciliation and confirmation for manual layout changes, and notify the shell when monitor state changes.
Release backdrop locks before render-element queries to prevent blurred popups from freezing the compositor. Cover popup open, update and close with regression tests.
Share translucent card styles between display modes and capture sources, show focus rings during keyboard navigation, and align picker buttons, label sizing and footer spacing with system modals.
Share a stable damped oscillator solver across scalar and rectangle animations while preserving retarget and explicit no-crossing presentation policies. Add deterministic traces, scrolling and zoom continuity coverage, and pause-aware advancement.
Measure resize barrier and handoff timing behind resize-metrics, expose the feature through the release installer, and wait for the intended backend in isolated portal tests.
The Settings portal reads appearance exclusively from the compositor's
theme control socket and falls back to defaults when no compositor is
reachable, so the contract test could no longer assert appearance from an
on-disk KDL document.
Add a fixtures/theme_owner.py peer that speaks the theme IPC framing and
publishes schema-v2 snapshots, point the test at a private runtime socket,
and clear WAYLAND_DISPLAY and WAYLAND_SOCKET so the backend cannot reach a
host compositor. Assert the initial values, the SettingChanged payload
after a republish, and that ReadAll matches the published snapshot, then
confirm an invalid local document does not disturb portal-owned
appearance.
Use the September 30 hero on the website and README, add a shared screenshot gallery, and remove the old showcase images. Build image links locally and clean generated site output.
Back up the known development portal override during installation and report custom overrides before building. Keep source selections clear while letting blur show through unselected rows.