github noctalia-dev/noctalia-shell v4.7.0

9 hours ago

🌙 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 onTextChanged autosave 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

Don't miss a new noctalia-shell release

NewReleases is sending notifications on new releases.