v2.3.0 — In-app pack browser, atmosphere effects, widget skins, cursor overhaul, GPU/RAM pass
LatestSix 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
applyI18ngained 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
feDisplacementMapin 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. Addedcolor-interpolation-filters="sRGB"on the filter. - Memory leaks (v2.3.4 / v2.3.5) — Liquid Distortion's per-frame
toDataURLwas 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.