🌙 Release Notes v4.6.6
A stability-focused release - squashing crashes, hardening the rendering pipeline, and polishing rough edges across the shell.
✨ New Features
- Smart Transparency: Auxiliary components now support smart translucency, with a toggle in Appearance settings.
- Desktop Widget Grid Snapping: Desktop widgets can snap to a configurable grid, with a toggle for snapping scale.
- Usage-Based Launcher Ranking: Launcher results are now ranked by usage frequency across all providers.
- Wallpaper Refresh IPC: Added a new IPC call to refresh the wallpaper externally.
- Draggable Desktop Settings: The desktop settings dialog popup can now be repositioned by dragging.
- Scrollbar Visibility Toggle: Added an option to always show the scrollbar or only on hover.
⚡ Improvements
- Floating Bar Margins: Increased max floating margins to 500px with spinbox controls, debounced updates, and correct smart panel positioning.
- Launcher Refactor: Split Launcher into smaller files for maintainability; improved record usage.
- Async Shape Rendering: Enabled async rendering for all CurveRenderer shapes for better performance.
- Plugin Settings Popup: Custom width support for plugin settings popups.
- Graphical Battery: Fixed scaling to not follow bar font size.
🐛 Bug Fixes
- Crash Fixes (SIGSEGV): Fixed multiple crashes caused by re-entrant ListModel incubation in bar widgets, notifications, and settings; degenerate Shape paths in backgrounds; qTriangulate crashes on flat corner arcs; and CurveRenderer crash in NWaveSpectrum (replaced with shader).
- Templating: Fixed user templates not processing when standard templates are disabled.
- Launcher Navigation: Fixed up/down keyboard navigation with dynamic grid columns.
- Hooks: Deferred HooksService init to delayedInitTimer for reliable startup hook execution.
- Widgets: Added layout margins to bordered widgets to prevent border clipping.
Changes since v4.6.5
- Release v4.6.6 (ed9f64cbb) by Lysec
- feat(settings): moving translucent widgets toggle to appearance subtab (2b12dcbf9) by Lemmy
- feat(settings): add translucent widgets toggle to gate smart transparency (eafcb91b8) by Lemmy
- i18n(update) (0d495490c) by Lemmy
- Merge pull request #2138 from tibssy/feat/smart-transparency (8ac14b185) by Lemmy
- perf(shapes): enable async rendering for all CurveRenderer shapes (e8ee0548c) by Lemmy
- fix(settings): defer ListModel population to prevent re-entrant incubation SIGSEGV (87c072e2c) by Lemmy
- fix(notifications): defer Loader activation to prevent re-entrant incubation SIGSEGV (835b12ed0) by Lemmy
- Merge pull request #2141 from pa1va/patch-1 (d4d173ebb) by Lemmy
- Update AdvancedMath.js (f4f75cbd2) by pa1va
- Revert "fix(launcher): prevent arbitrary js execution. fix #2115" (7bb88e691) by Lemmy
- fix(hooks): defer HooksService.init to delayedInitTimer for startup hook reliability (93deeda58) by Lemmy
- fix(launcher): fix gradients and nbox colors (4a198b546) by Lemmy
- feat(widgets): implement smart transparency for auxiliary components (5fb4286d9) by tibssy
- fix(widgets): add Layout.margins to bordered widgets to prevent border clipping (8450adfda) by Lemmy
- feat(launcher): splitted in smaller files for easier maintainability. improved record usage. (15decbe05) by Lemmy
- fix(backgrounds): prevent qTriangulate crash on framed bar outer rectangle arcs (44045fa02) by Lemmy
- fix(backgrounds): enforce minimum arc radius to prevent qTriangulate SIGSEGV on flat corners (77b253f1c) by Lemmy
- Merge pull request #2117 from spiros132/desktopwidgets-grid-scale (8be7a34b4) by Lysec
- Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell (e8e5d87fc) by Lysec
- feat(launcher): implement usage-based ranking for results across providers (7decba160) by Lysec
- fix(desktop-widgets): Added a toggle for snapping the scale (87299dda0) by Spyridon Siarapis
- Merge branch 'noctalia-dev:main' into desktopwidgets-grid-scale (d95806f44) by Spyridon Siarapis
- fix(bar): defer ListModel sync to prevent re-entrant incubation SIGSEGV (54ec0878f) by Lemmy
- fix(backgrounds): another take on fixing potential degenerate Shape paths (4d0897d6e) by Lemmy
- fix(audio): replace NWaveSpectrum CurveRenderer with shader to fix SIGSEGV crash (e4593216f) by Lemmy
- fix(desktop-widgets): resolve widgetMetadata ReferenceError in DraggableDesktopWidget (d3732cb19) by Lemmy
- fix(plugins): ensure settings.json is never copied on update (97ab97d4f) by Lemmy
- feat(ui): add toggle to show/hide scrollbars on hover (9536553dc) by Lysec
- feat(plugins): settings popup allow for custom width (0294759a5) by Lemmy
- chore(niconbutton): renamed allowScroll to handleWheel for clarity (29d0b1f63) by Lemmy
- fix(ntextinput): fix chopped off border due to fractional scaling + never swallow mousewheel events (cab111771) by Lemmy
- fix(launcher): use a binding for dynamic gridColumns - fix up/down navigation. (372eaeed2) by Lemmy
- Merge pull request #2112 from spiros132/main (fe9f52d35) by Lysec
- Merge pull request #2122 from notiant/patch-21 (4fcc622c5) by Lemmy
- fix(launcher): prevent arbitrary js execution. fix #2115 (2f4b80d72) by Lemmy
- fix(nbox): update comment (250242c26) by Lemmy
- fix transparency issues with connected box for Bluetooth/WiFi (e5a6bcdf1) by notiant
- feat(desktop-widgets): Added support for grid snapping of the desktop widgets (cbc650751) by Spyridon Siarapis
- fix(bar): graphical battery - dont eyeball the scale (bfdf883b0) by Lemmy
- chore: format (1be78b506) by Spyridon Siarapis
- fix(bar): graphical battery should not follow bar font size. (864d6ad72) by Lemmy
- fix(bar): simplified floating margins ui (4d07c8ad1) by Lemmy
- fix(bar): replacing margins sliders by spinbox (3e89e1703) by Lemmy
- fix(templating): process the user templates even if no standard templates are enabled (efb9cadd1) by Lemmy
- feat(bar): debouncing rapid changes to floating margins (b7e69d557) by Lemmy
- feat(bar): increased floating margins from 18px to 500px - fixed smart panels opening positions to properly account for thoses margins. (1fd0b187b) by Lemmy
- feat(desktop-widgets): Added a way to move the DesktopSettingsDialog popup by dragging (9e8558abe) by Spyridon Siarapis
- feat(ipc): add new ipc call wallpaper refresh (9acb3facf) by Lemmy
- chore(version): bump to 4.6.6 (697d3754a) by Lemmy