Skip to content

v2.3.0 — In-app pack browser, atmosphere effects, widget skins, cursor overhaul, GPU/RAM pass

Latest

Choose a tag to compare

@Delido Delido released this 17 Jun 13:15
· 2 commits to main since this release

Six months of beta iteration consolidated into one stable release. v2.2.1 → v2.3.0 covers v2.3.0-beta through v2.3.13-beta.

Highlights

In-app wallpaper pack browser

The Library tab browses curated pack manifests hosted on GitHub Pages. Tiles preview every bundled wallpaper; click adds the whole pack to the local library. New packs ship without a Configurator update.

Atmosphere effects

  • Storm preset — rain particles + a lightning flash subsystem with random strikes and occasional doubles
  • Water-ripple pixelfx — clicks bend the wallpaper image along a propagating SVG-displacement wave (real BG refraction, not an outline overlay)
  • Weather-reactive ambient — picks the right preset from the live WMO code (Open-Meteo)

Widget skin system

Every widget type can ship alternate skins. Weather launches with three: default, compact, hexagon. Skin picker lives in the per-widget edit dialog.

Cursor-effect overhaul

  • Liquid Distortion / Chromatic Halo / Spotlight / Widget Float moved to the Effects tab as a tile grid (replacing the v1.6-era checkbox row)
  • Pixelfx mode picker also became a tile grid in v2.3.9
  • New on-screen lock pill: re-lock widgets without going back to the Configurator

GPU + memory optimisation pass

  • Idle full-viewport canvases (ambient / pixelfx / audio-glow / bars) collapse to 1×1 backing buffer (~30 MB saved per canvas per WebView2 instance on a 5120×1440 setup)
  • Pixelfx + audio-glow gained the same SCALE × DPR bucket the ambient canvas already had — Performance bucket = 4× fewer pixels per frame
  • Widget Float repulsion no longer juggles 2N in-flight CSS transitions every render tick
  • Stripes/Pills layouts no longer hold N background transitions for the same reason
  • Audio-spectrum widget redraws at 30 Hz via a new counter-gated rAF path (was stuck at 1 fps)

Configurator i18n sweep

  • applyI18n gained independent attribute translation slots (data-i18n-title, data-i18n-placeholder, data-i18n-aria-label, data-i18n-alt)
  • All Quick Looks bundles, widget catalog labels, glow / glass-quality / frame-rate / grid-renderer dropdowns, and header tooltips now follow the active language
  • Add-Widget grid + Quick-Looks grid rebuild on language switch

Notable fixes from the beta line

  • Water-mode whole-BG shift (v2.3.13) — SVG filter color-space mismatch. Chromium runs feDisplacementMap in linear-RGB by default but our displacement map canvas exports as sRGB PNG. R=128 sRGB → 0.215 linear → constant -22 px shift across the non-ring area. Added color-interpolation-filters="sRGB" on the filter.
  • Memory leaks (v2.3.4 / v2.3.5) — Liquid Distortion's per-frame toDataURL was leaking ~1 MB/s of decoded SVG-filter bitmaps; Spotlight allocated a fresh CSS gradient string per frame
  • Cursor effects ignored fullscreen pause (v2.3.5)
  • Library bulk-select / tag-filter edge cases (v2.3.1 / v2.3.2)

Upgrade

Wallpaper bundle re-import required. Tray → Re-import wallpaper bundles.

Full per-beta history in CHANGELOG.md.