🌙 Release Notes v4.7.0
A major update featuring a native audio analyzer, overhauled networking, advanced notification rules, and expanded compositor support.
✨ New Features
- Audio: Native Pipewire spectrum (no external Cava needed), volume limit events, and per-app volume persistence.
- Networking: Fully revamped UI with better signal icons and WPA-Enterprise support.
- Notifications: Added pattern-based display rules (filter by app/body) and quick-access settings.
- Dock: Native distro/custom icons, renamed "Static" mode to "Attached," and improved auto-hide performance.
- Wallpaper: Precise interval timers, granular transition selection, and an expanded Wallhaven browser (70% height).
- Clipboard: Added categories and "time ago" indicators.
- Theming: Enhanced Ghostty and Zen Browser Kitty and the Pywalfox template.
- Compositors: Improved native support for MangoWC (DWL-based) and Labwc (workspace/window tracking).
- System: Support for GIF profile pictures, ddcutil dynamic sleep for brightness.
⚡ Improvements
- Performance: Reduced GPU overhead on Dock auto-hide; optimized animations for blur compatibility.
- UX: Added
onTextChangedautosave for inputs, fixed Night Light visual noise, and improved settings search indexing. - Widgets: Fixed Media Mini width logic and Lock Screen text wrapping.
🐛 Bug Fixes
- Stability: Resolved SIGSEGV crashes in Hyprland and Workspace pills; fixed re-entrant QML incubation crashes.
- Hardware: Fixed crashes during monitor hotplugging and resolved Bar auto-hide race conditions.
- UI: Patched OSD visibility logic, fixed Dock blur positioning, and corrected NCheckbox alignment.
- Input: Prevented accidental settings loss on popup close.
Changes since v4.6.7
- Release v4.7.0 (16c6181ba) by Lemmy
- fix(config): ensure trailing slash (e8bca1722) by Lemmy
- fix(wallhaven): adjust height calculation to prevent overshooting (5eb8b9cbc) by Lysec
- chore(sysstat): removed dead code (d2396b3e6) by Lemmy
- chore(autofmt): lysec cloned again (0065d9b53) by Lemmy
- fix(about): show noctalia-qs new version string (7a6541617) by Lemmy
- chore(i18n): add notification rules translations (5547a2716) by Lysec
- fix(notification-rules): do not allow empty patterns (bc258254d) by Lysec
- feat(notifications): add notification display rules (381444bc2) by Lysec
- fix(ntextinput): use onTextChanged for autosave, onEditingFinished instead of onAccepted (9f8bf988f) by Lysec
- Revert "fix(ntextinput): going back to "textEdited" so you dont have to press enter or change focus to apply the changes." (0756e9f56) by Lemmy
- fix(Settings): prevent keyboard search from clearing/navigating on second keystroke (e6ca3889c) by Lysec
- fix(wallpaper): fixed wallhaven pager. increased height from 45% to 70% (ecad305dd) by Lemmy
- Merge pull request #2211 from nZo-sp/fix/ignore-sounde-notification (79207af62) by Lysec
- Fix ignore sound for app without a name but with a desktopEntry defined (339443932) by nZo-sp
- Merge pull request #2210 from linusammon/main (f3386cd81) by Lemmy
- chore(flake): bump flake.lock (8222cf3d5) by Linus Ammon
- fix(labwc): minor fixes to support upstream ext-workspace-v1 (bbee20a1a) by Lemmy
- Revert "add logging to HyprlandService & CompositorService" (739d84a21) by Lysec
- Merge branch 'dwl-mango' (09b4c927c) by Lemmy
- Merge branch 'labwc' (9610e3672) by Lemmy
- chore(merge): bar autohide + hyprland fixes (1ed2e5762) by Lemmy
- Merge pull request #2205 from nZo-sp/feat/audio-service-min-max-event (d9ae5e617) by Lysec
- Added min/max events in audio service to notify subscribers when audio limit is reached (71568bd2a) by nZo-sp
- fix(bar): never unload content when bar is hidden (2ffb41a2b) by Lemmy
- fix(network): force opaque on nbox delegate to avoid ugly opacity. (23a5b1de5) by Lemmy
- fix(hyprland): same fix but with a simpler Qt.callLater approach (08ed43d9a) by Lemmy
- fix(notif/workspace): reverting some of the previous attempt from timer back to Qt.callLater (306279716) by Lemmy
- fix(hyprland): defer workspace ListModel updates to prevent SIGSEGV during incubation (8370ef36a) by Lemmy
- Merge pull request #2203 from haikalllp/fix/update-pywalfox-colors (d51bc9578) by Lysec
- fix(hyprland): correct focusedWindowIndex after sorting window list (5e95658fa) by Lysec
- fix(bar): attempt to avoid crash when autohide is used (311fc08ac) by Lysec
- Revert "fix(bar): defer update to next cycle" (46a3c7e2d) by Lysec
- fix(bar): defer update to next cycle (2fcd219c3) by Lysec
- fix: remap pywalfox colors to better support light color theme (467bac002) by haikalllp
- fix(popup): disable autoclose by clicking outside to avoid loosing settings by accident. (e39ff3a81) by Lemmy
- fix(ntextinput): going back to "textEdited" so you dont have to press enter or change focus to apply the changes. (c2d961712) by Lemmy
- fix(tooltip): limit tooltip radius when box is too small, larger horizontal padding for grid mode. (dd6485871) by Lemmy
- fix(network): ethernet info - fix box border color (515eece59) by Lemmy
- fix(network): removed hover effect, adjusting size and radius. (088c1e070) by Lemmy
- chore(audioservice): minor cleanup (5614c16ea) by Lemmy
- fix(zen-browser): more template adjustments (f6d398ecc) by Lysec
- fix(zen-browser): add overflow button to template (8b356a2c3) by Lysec
- fix(zen-browser): adjust template for new zen update (b647e385a) by Lysec
- fix(bar): attempt at resolving widget incubation race conditions (2e5f07e03) by Lysec
- add logging to HyprlandService & CompositorService (719ef29fe) by Lysec
- fix(Hyprland): attempt to fix invalid window extraction (9511f1fce) by Lysec
- fix(dock): adjust exclusive zone sizing (2adbf002b) by Lysec
- chore(settings): update deb (c3e18d4db) by Lemmy
- Merge pull request #2193 from tibssy/feat/dock-launcher-icon-selector (e12d71986) by Lemmy
- Merge pull request #2194 from notiant/patch-1 (b2952e47e) by Lemmy
- reduce label size of wallpaper transition types (5fbd7c229) by notiant
- layout refinements for info button (b83446f29) by notiant
- BluetoothSubTab: Color adjustments (2949c1da6) by notiant
- feat(settings): update search index for new dock launcher settings (a96de7dba) by tibssy
- feat(dock): add custom icon selector for the dock launcher (ead9a8191) by tibssy
- feat(dock): implement distribution logo rendering for launcher icon (a8bc826c0) by tibssy
- feat(dock): add setting to use distro logo as launcher icon (53119a193) by tibssy
- fix(OSD): when controlcenter is open, before skipping OSD check that the cards(vol/bright) are really enabled (1b2ec2e4a) by Lemmy
- fix(OSD): keep panelwindow always loaded to avoid hotplug crash (3b5410103) by Lemmy
- feat(network): cleanup and UI polish (b9fbe6cd1) by Lemmy
- Merge pull request #2110 from turannul/pr/networking-refactor-pt2 (44b6ba6c3) by Lemmy
- Signal icon representation in WifiSubTab (2689c6ced) by Lemmy
- Restored BTSubTab (d64010d41) by Lemmy
- Merged display changes (d95af3ef4) by Lemmy
- Update WifiSubTab.qml (f62d9f5c0) by Lemmy
- reworked icon logic to cover all grounds (13de2c818) by Turann_
- apply changes (a98925698) by Turann_
- Merge remote-tracking branch 'upstream/main' into pr/networking-refactor-pt2 (3ec64e394) by Turann_
- fix(wifi): more colors refinment (cf4c1f9fb) by Lemmy
- simplify channel logic remove iw usage (83881197c) by Turann_
- fix(wifi): better colors (3f570037a) by Lemmy
- fix(wifi): simplified colors managements in the panel (ccd5b792e) by Lemmy
- chore(settings): default settings json update (ce5fd2965) by Lemmy
- feat(Plugins): add toggle to hide the update notification (dbdabba58) by Lysec
- Guard ethtool usage. (a5af3e83d) by Turann_
- Merge pull request #2192 from linusammon/main (59be951fd) by Lysec
- fix(flake): add missing inputs (49566a3ed) by Linus Ammon
- increase range a bit (e6fc9dc70) by Turann_
- Merge pull request #2190 from linusammon/main (ae69c0e35) by Lemmy
- chore: bump flake.lock (ccdf169fc) by Linus Ammon
- Icon backgrounds (b145531df) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 (a6e616caf) by Turann_
- fix(workspace): defer update to next event loop via timer instead of Qt.callLAter (0d503343f) by Lemmy
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 (6defe3c56) by Turann_
- chore(i18n): update (3a10b10b8) by Lemmy
- chore(readme): more compact (d17275ff4) by Lemmy
- chore(i18n) update (96ae7c88d) by Lemmy
- feat(hooks): added a simple color generation hook (1454ef24e) by Lemmy
- chore(readme) stars at the bottom (684414773) by Lemmy
- chore(readme): updated with scope (43828ebd0) by Lemmy
- Merge pull request #2183 from DFSko/fix-kitty-predefined-selection-colors (4cb3743a4) by Lemmy
- Merge pull request #2185 from ShalokShalom/patch-1 (8a77abd11) by Lemmy
- Update supported Wayland compositors list (2258584b7) by ShalokShalom
- Update NetworkPanel.qml (7aa44ad7c) by Turann_
- normally i should've returned. might be oversimplified :P (d44df268e) by Turann_
- Update WifiSubTab.qml (1a0236c92) by Turann_
- Update NetworkPanel.qml (ad641634b) by Turann_
- fmtd (1e05fc394) by Turann_
- put actual icons (aec50a5f0) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 (29580708d) by Turann_
- bad sed -i :(( (f0ae489c4) by Turann_
- move to service 3/3 (34f1457e1) by Turann_
- fix an issue where variables might not ready. (d900f8d22) by Turann_
- some fixes - deleted un-needed if block (9b6998026) by Turann_
- move functions to service 2/3 (bd6158348) by Turann_
- feat(icons): new ethernet icons (a3f84fde3) by Lemmy
- Fix kitty predefined selection colors (04a5ab8c6) by Denis Nikolaev
- feat(icons): new wifi icons (efeae43fb) by Lemmy
- prep for new icons 1/3 (7d4b22059) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 (f55a2aaac) by Turann_
- Merge branch 'main' of github.com:noctalia-dev/noctalia-shell (2ff67234f) by Lemmy
- feat(wallpaper): added ability for granular pick of transitions via checkboxes (bf234e502) by Lemmy
- Merge pull request #2181 from linuxmobile/fix-clipboard-colors (4c5976fa4) by Lemmy
- fix(clipboard): add color preview (73a3d3c25) by Braian A. Diez
- feat(Wallpaper): change random wallpaper time buttons to NSpinBox (5c58bcac7) by Lysec
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 (39f9123cb) by Turann_
- chore(autofmt) (793771cd7) by Lemmy
- fix(dock): gate peek and indicator windows on auto-hide to reduce GPU compositing overhead (d163f8a9d) by Lemmy
- Merge pull request #2178 from LionHeartP/main (e7aed65a1) by Lemmy
- SystemMonitor.qml: fix launching external Monitor app (7b80ac731) by LionHeartP
- Merge branch 'main' of github.com:noctalia-dev/noctalia-shell (54316dcdb) by Lemmy
- feat(audio-spectrum): replaced cava process by our pipewire implementation via noctalia-qs (5821bb1f7) by Lemmy
- feat(kitty): add tab & trail colors (d11bdcbc1) by Lysec
- docs(README): remove dev-shell info from readme (9f6c00cba) by Lysec
- fix(WallpaperAutiomation): use iRadius for time interval options (4dbec38bf) by Lysec
- fmt (08a7591b7) by Turann_
- Update NetworkService.qml (20d4fc044) by Turann_
- resolve merge issue[s] (7af3f19c1) by Turann_
- Merge branch 'main' into pr/networking-refactor-pt2 (b790d0d1b) by Turann_
- chore(i18n): update (c6d0f651f) by Lemmy
- feat(clipboard): removed unused date filter and date headers, went with a simple "time ago" indicator per entry which feels more natural (449640796) by Lemmy
- Merge pull request #1999 from linuxmobile/clipboard-filter (d9d453184) by Lemmy
- chore(autofmt) (c67f293ac) by Lemmy
- Merge pull request #2109 from turannul/pr/networking-refactor-pt1 (12c77e552) by Lemmy
- fix(mediamini): proper width computation when show album art is off. Fix #2121 (4500f13de) by Lemmy
- fix(lockscreen): wrap custom clock text to avoid overflow. fix #2173 (8f1a812cc) by Lemmy
- prep for icons (b8dcf04a9) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 (607176dfb) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 (a9915ee6c) by Turann_
- fix(nightlight): changed the logic, the icon is now colored only when enabled (b17f72035) by Lemmy
- fix coloring that created in pt1 | Missing elements. (983867d15) by Turann_
- carry over requested changes from pt1 | apply pt1.patch (a5ac9541f) by Turann_
- add timer, use color & i18n of open. (c994bdbfd) by Turann_
- Merge branch 'main' of github.com:noctalia-dev/noctalia-shell (0bdf5afd2) by Lemmy
- feat(notif): added a shorcut to the settings in the notification history panel (76f2d2a6b) by Lemmy
- fix(ghostty): add config.ghostty support (8fb06fddf) by Lysec
- fix(bar): more bullet proofing toward auto-hide (4e814962a) by Lemmy
- feat(dock): renaming "static" to "attached" (8e346465c) by Lemmy
- fix(dock): fix attached dock retraction when hovered (bd8261646) by Lemmy
- Delete Planning board.md (c497b9721) by Turann_
- Delete Modules/Panels/Settings/Tabs/Connections/Planning board.md (3346a365f) by Turann_
- feat(brightness): enable ddcutil dynamic sleep to reduce latency (3c9524a02) by Lysec
- Update Planning board.md (578743a6e) by Turann_
- fix(tooltips): added support for string vs array content everywhere (599068b58) by Lemmy
- finalize, enterprise support (22a694ce7) by Turann_
- Improve enterprise support (16d5e1f02) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 (79a14aca2) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 (294b39090) by Turann_
- chore(i18n): update (20e480d73) by Lemmy
- feat(hooks): added a 3rd argument to the wallpapper changed hook (light/dark) (40e06ed1f) by Lemmy
- chore(i18n): update (1b77bf141) by Lemmy
- Merge pull request #2169 from Aitor42/main (40e546022) by Lysec
- Support for .gif profile picture (dd6bfa2cf) by Aitor
- Merge pull request #2163 from notiant/patch-23 (786ca2c80) by Lysec
- further attempt to improve efficiency (af1516b43) by Turann_
- Update Network.qml (3fd38592e) by Turann_
- this makes more sense where used. (9aa636cbc) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 (bd9791bdc) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 (2cde5925c) by Turann_
- fix(clipboard): code cleanup (d92aa0a72) by Braian A. Diez
- fix(docK): fix static dock auto retraction when mouse stays on the peek zone (072dd859a) by Lemmy
- remove app2unit in launcher settings (bb2e311dc) by notiant
- chore(clipboard): cleanup request (02cf4f8db) by Braian A. Diez
- fix(dock): fix blur pos when floating (906d265bc) by Lemmy
- fix(dock): replaced animations by slide-in/out to be blur compatible + removed animation on the dock indicator that was super laggy and unecessary. (c249d2d51) by Lemmy
- autofmt (81586e7fa) by Lemmy
- fix(launcher-overlay): fix background color being all wrong (aaf91299a) by Lemmy
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 (1f8bef9b9) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 (b3d2172d7) by Turann_
- chore(bt): unified get/setDeviceAutoConnect to use similar arguments (c15fb85c5) by Lemmy
- fix(ncheckbox): better tick sizing and centering (3679f7fca) by Lemmy
- fix(audio): keep per-app volume across track changes and seeks (74e375e24) by Lysec
- don't sync blindly (cf83d4aa0) by Turann_
- Merge upstream/main into pr/networking-refactor-pt2 and fix BluetoothSubTab.qml conflict (299402a76) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 (88cf314ec) by Turann_
- fix(settings): add proper spacing on notif/general tab (5ee84e3ab) by Lemmy
- fix(bt): better looking auto-connect checkbox (9cc017a89) by Lemmy
- refactor(notif): rename internals for clarity (popup vs history) (9d142fbaf) by Lemmy
- fix(notif): fix re-entrant QML incubation crash in NotificationService (683e61744) by Lemmy
- Revert "fix(audio): persist per-app volume against app-side resets" (75cc031ce) by Lysec
- fix(audio): persist per-app volume against app-side resets (9b3a97f7c) by Lysec
- Revert "fix(shell): prevent nested QML incubation in workspace pill Repeaters" (016b7a678) by Lysec
- fix(shell): prevent nested QML incubation in workspace pill Repeaters (4b9a28981) by Lysec
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 (f3d963c28) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 (d4d7b5516) by Turann_
- Bumping version (ba03e4c3f) by Lysec
- update note (65374d546) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 (a8c3987a8) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 (f9074e968) by Turann_
- Merge branch 'main' into clipboard-filter (conflict resolution) (c4dbdb29d) by Braian A. Diez
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 (749a1823f) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 (13c21e518) by Turann_
- an obvious power spike culprit (fe859429e) by Turann_
- Merge remote-tracking branch 'upstream/main' into pr/networking-refactor-pt1 (d469ce31e) by Turann_
- Merge remote-tracking branch 'upstream/main' into pr/networking-refactor-pt2 (473b54ed9) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 (547ebfd19) by Turann_
- Simplify - even more. (b242c509c) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 (fe21f620a) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 (4815f4a0a) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt1 (01e272924) by Turann_
- Merge branch 'noctalia-dev:main' into pr/networking-refactor-pt2 (ebde16024) by Turann_
- feat(network): improve UI consistency and connection info display (cada065b0) by Turann_
- Merge branch 'upstream/main' into pr/networking-refactor-pt2 and resolve conflicts (ae8b13c11) by Turann_
- Merge branch 'upstream/main' into pr/networking-refactor-pt1 and resolve conflicts (c47aefa33) by Turann_
- i18n (471f515ac) by Turann_
- unused keys now gone (6daa73b48) by Turann_
- Update NetworkService.qml (4c6f9ab47) by Turann_
- Update Planning board.md (830321bf6) by Turann_
- basic enterprise support (88618b68f) by Turann_
- Here we go again (d4f2ebb9a) by Turann_
- feat(labwc): use native ext-workspace-v1 for workspaces and fix window tracking (57b47e694) by Lemmy
- fix(mango): fix window-to-output mapping and guard against empty metadata matches (a3b44f423) by Lemmy
- feat(mango): new service implementation using the proper dwl implementation (4cb1b354a) by Lemmy
- feat(spectrum): new cava free service (6f5b9f422) by Lemmy
- fix: improve the code regex (67ffbb6f2) by Braian A. Diez
- chore: missing translation for clipboard (a913e95d0) by Braian A. Diez
- clipboard: add filters by type & date (a844e578a) by Braian A. Diez