🌙 Release Notes v4.4.3
This release focuses on wallpaper favorites, a new Khal calendar provider, and a streamlined plugin development workflow with per-plugin hot-reload. We've also cleaned up the session menu, improved keybind handling, and squashed several bugs.
✨ New Features
- Wallpaper Favorites: Star any wallpaper to pin it to the top of the list. Favorites automatically save and restore their associated color scheme, so switching back is instant. Small palette dots preview saved colors at a glance.
- Khal Calendar: Added support for Khal as a calendar data provider. If Khal is installed, your events appear directly in the calendar panel alongside (or instead of) Evolution Data Server.
- Plugin Debug Mode: Per-plugin debug mode can now be toggled from the plugin list, making it easier to troubleshoot individual plugins.
- Wallpaper Panel: Added quick-access toggles for dark/light mode and wallpaper color extraction. Added an option to skip the startup wallpaper transition for snappier login.
- Launcher: Added a "Enable session search" setting to hide session actions (lock, shutdown, etc.) from launcher results.
⚡ Improvements
- Keybinds: Factorized keybind detection and display logic. Duplicate keybinds are now rejected, and the recorder layout has been refined.
- System Stats: Use explicit hardware backends to avoid waking discrete GPUs.
🐛 Bug Fixes
- Keybinds: Fix custom keybinds not working
- Background: Wallpaper no longer briefly flashes before it's fully loaded
- Launcher: Fixed a broken binding in tab buttons caused by imperative assignment. (Fix #1787)
- NScrollView: Fixed right-side controls being hard to click when no scrollbar was visible.
- Pywalfox: Fixed incorrect color output.
- MangoWC: Applied a workaround for
mmsgnot supporting spaces in commands.
Changes since v4.4.2
- v4.4.3 (3e0cd031) by Lemmy
- Merge pull request #1795 from tuibird/lysec-qa-fixes (ce794a95) by Lemmy
- smarter generation calls when switching between favorites + plus adds a conditional explicit call to generate new colours which solves lysecs bug. (049f7c94) by tuibird
- plugin-service: simplified hot-reload (57ec0d83) by Lemmy
- about: added a way to enable debug mode (5260e3b0) by Lemmy
- Merge pull request #1793 from spiros132/main (ec4bfb13) by Lemmy
- i18n-update (3f8242fb) by Lemmy
- Merge pull request #1794 from tuibird/posty-qa-fixes (f317ed0b) by Lemmy
- background-overview: improved init to avoid noctalia bg showing (208e0509) by Lemmy
- background: really wait for image loaded to show anything (46584ada) by Lemmy
- background: dont show wallpaper until we are ready (28b95a83) by Lemmy
- improved color scheme toggle descriptions (e7769d9f) by tuibird
- fixes for thumbnail caching, more consistant model positions during order sorts, more robust handling of a nagivation race condition. (4f4d45b2) by tuibird
- mango: band-aid fix for mmsg not support spaces in commands (even if escaped) (bb22b5fa) by Lemmy
- autofmt (52c5aa95) by Lemmy
- Merge pull request #1792 from tuibird/wallpaper-enhancements (3fe44cbc) by Lemmy
- Merge branch 'noctalia-dev:main' into main (901b0cd0) by Spyridon Siarapis
- feat(PluginService): Added the ability to have a button to press to enable debug mode for a specific plugin (7ee6b506) by Spyridon Siarapis
- Wallpaper fav system (dcb661e7) by tuibird
- Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell (7eeaa452) by Lysec
- Keybinds: adjust layout, reject duplicate keybinds (95313e1d) by Lysec
- sessionMenu: auto-recreate 1..6 for as shortcuts for existing users (75d28e77) by Lemmy
- Merge pull request #1785 from bokicoder/main (c10f9b0f) by Lemmy
- launcher-nicontabbutton: remove imperative assignation that breaks binding. Fix #1787 (9927fce5) by Lemmy
- custom-button: using a proper singleton for the CustomButtonIPCService instead of and object registered in Qt.application. The singleton directly check the settings for IPC calls definition instead of the Bar widgets, this allow us to unload the bar widgets when the bar is hidden while keeping IPC call functional. (b8de6b15) by Lemmy
- wallpaper: added an option to skip initial transition (02a5d103) by Lemmy
- session-menu: remove hover on exit (046e6688) by Lemmy
- session-menu: removed numbers (87131068) by Lemmy
- Merge pull request #1476 from shouya/main (5b7222eb) by Lemmy
- Merge pull request #1782 from spiros132/main (379ab1a7) by Lemmy
- Merge pull request #1789 from shadowe1ite/main (6058139e) by Lemmy
- launcher: added option to disable sessionMenu entries (0cf3f931) by Lemmy
- nscrollview: fix bug where it's hard to click on the right size controls due to being interactive even tho there is no scrollbar. (f5eeb524) by Lemmy
- fix: pywalfox color (bf2bfcd1) by ALAN S
- autofmt (aafc57c4) by Lemmy
- keybind: i18n cleanup (95355829) by Lemmy
- fix: Use explicit hardware backends to avoid dGPU wakeup (9b01b6b0) by wxlyyy
- Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell (3b7c6bd3) by Lysec
- NKeybindRecorder: adjust layout (d11ba483) by Lysec
- Merge branch 'main' of github.com:noctalia-dev/noctalia-shell (e0c885a5) by Lemmy
- activewindow: pixel exact centering (6ddd5725) by Lemmy
- mediamini: pixel exact centering (520378d9) by Lemmy
- Revert "ActiveWindow: adjust vertical bar layout" (3f3f59f0) by Lemmy
- ActiveWindow: adjust vertical bar layout (21efd0db) by Lysec
- Revert "AudioPanel: display device icon in devices tab" (981d7978) by Lysec
- AudioPanel: display device icon in devices tab (eaa57933) by Lysec
- Compositor: remove individual arry conversion - we already do it in CompositorService (825701a5) by Lysec
- fix(PluginService): Renamed to root since that follows the last code (edd236d9) by Spyridon Siarapis
- Merge branch 'noctalia-dev:main' into main (64b1e65c) by Spyridon Siarapis
- Added ability to hot reload all qml and js files in the PluginService (9cae4d11) by Spyridon Siarapis
- Compositor: adjust launch command logic (#1742) (eedbfed5) by Lysec
- N*WidgetSettingsDialog: properly force max 80% screen height (#1777) (6fbf7795) by Lysec
- Keybinds.js: factorize keybind detection & display logic LockScreen: remove hardcoded Keybinds Launcher: remove most hardcoded keybinds (except for Tab etc) MainScreen: remove most hardcoded keybinds (except for Home etc) SessionMenu: remove all hardcoded keybinds WallpaperPanel: remove all hardcoded keybinds (9a208389) by Lysec
- keybinds: use instantiator for non visual elements (17138ca7) by Lemmy
- Merge remote-tracking branch 'upstream/main' (cce8cf71) by shouya
- bump version to 4.4.3-git (52b710bf) by Lemmy
- remove arguments to init (b7ce840d) by shouya
- Merge remote-tracking branch 'upstream/main' (2f702cdc) by shouya
- fix bad merges (5650a2cc) by shouya
- Merge remote-tracking branch 'upstream/main' (f09ff15c) by shouya
- remove redundant logic (5e6c28ee) by shouya
- run qmlfmt (29f0874a) by shouya
- check for khal availability (5e638271) by shouya
- check for khal availability (57e0528b) by shouya
- support khal as calendar data provider (844c6c2b) by shouya