Release Notes v4.1.0
We are excited to announce v4.1.0, a feature-packed update bringing notification actions and numerous UI refinements.
⚠️ Important
- Anonymous Telemetry: Noctalia now includes opt-out anonymous telemetry to Help improve the project by sharing anonymous system info (screen resolution, compositor, distro, scaling).
- Sent once at startup, no tracking, data auto-deleted after 30 days. A consent dialog is shown on first launch.
- You can change this setting at any time in Settings and review what data would be sent.
✨ New Features
- Notification Actions: Notification history panel now supports clickable action buttons from notifications.
- CustomButton IPC: Custom bar buttons can now be triggered via IPC commands.
- Bar: Option to hide bar and panels when in Niri overview.
🎨 Improvements
- Tab Design Overhaul: Completely redesigned NTabButton with rounded corners and improved visual hierarchy.
- Discord Theming: Added BetterDiscord and Legcord support.
- Pywalfox Support: Added color template with full dark/light mode support.
- Lock Screen Rework: Internal refactoring with simplified button sizing, battery indicator improvements, and better fingerprint authentication flow.
- Toast Behavior: Toasts now stay visible while the mouse is hovering over them.
- Overview Blur: Improved blur effect using ImageMagick when available.
- Media Player Panel: Layout adjustments and improved album artwork display.
- About Panel: Added system information display with fastfetch integration.
- Kitty Template: Corrected color mapping in kitty.conf template.
- Helix Template: Replaced with improved matugen template.
- i18n Improvements:
- Missing translations now fallback to English without
##prefix. - Added Traditional Chinese (zh-TW) support.
- Numerous translation updates across all languages.
- Missing translations now fallback to English without
- Plugin System:
- Plugins can now detect which screen their panel is open on.
- Improved reliability and fixed potential race conditions.
- Better update descriptions in plugin manager.
- DDC Brightness: Added polling support and improved refresh logic for external monitors.
- Launcher: Improved icon colors when hovered, allow providers to define navigation wrap behavior.
- Desktop Widgets: Now respect panel opacity slider setting.
🐛 Bug Fixes
- Hue Slider: Fixed RainbowMode not being applied due to incorrect enum usage.
- Clipboard: Fixed console warning during clipboard operations.
- Plugin Translations: Fixed race condition when loading translations.
- Lock Keys Widget: Fixed persistence of setting due to missing registry, added option to hide indicator when lock status is off.
Changes since v4.0.0
- Release v4.1.0 (c0b5530e) by Ly-sec
- discord: minor adjustment to get more contrast when selected. (24832354) by Lemmy
- TemplateProcessor: added support for HSL (2b9d8d94) by Lemmy
- Startup: proper display of a dialog to confirm anonymous telemetry acceptance. (e6a80703) by Lemmy
- Revert "Merge pull request #1405 from BinaryQuantumSoul/patch-5" (bb76a177) by Lemmy
- Merge pull request #1405 from BinaryQuantumSoul/patch-5 (1bda7f4a) by Lemmy
- i18n: update (51e8120a) by Lemmy
- i18n: zh-TW update (c2f1ab21) by Lemmy
- Merge pull request #1418 from bokicoder/main (73312a16) by Lysec
- MediaPlayerPanel: improve the album artwork (68035d2d) by wxlyyy
- LockScreen: fix login button (5a039a54) by Ly-sec
- Merge pull request #1404 from BinaryQuantumSoul/patch-4 (54800772) by Lemmy
- autofmt (476f01e0) by Lemmy
- i18n: update (61de11cb) by Lemmy
- Merge pull request #1410 from notiant/patch-10 (c083b33d) by Lysec
- LockScreenPanel: small layout adjustments (6ca92a6f) by notiant
- NReorderCheckboxes: add i18n for '(required)' (f7fad364) by Ly-sec
- Merge pull request #1408 from MrDowntempo/fix/LessMath (de8f6853) by Lysec
- bulk find replace of different style values (44014716) by Corey Woodworth
- Change M/2 to XS wich is mathmatically the same value without division (c9c8393c) by Corey Woodworth
- Autofmt (be534d9e) by Ly-sec
- LockScreenTab: remove redundant divider (6a6c1317) by Ly-sec
- Toast: don't hide if mouse is inside toast (580f8fd1) by Ly-sec
- Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell (cda99d6f) by Ly-sec
- LockScreen: internal rework (577269da) by Ly-sec
- Merge pull request #1407 from MrDowntempo/fix/HueSlider (8d7a6229) by Lysec
- The Hue Slider was erroneously stopped using RainbowMode because a prior cleanup did not use Enum correctly. (1c100bec) by Corey Woodworth
- Style.xRadiusXXXS tweaking (1b3b2f12) by Lemmy
- NTabButton: smaller rounding (1544742f) by Lemmy
- Overview: blur tweaks (4f8660f8) by Lemmy
- Replace discord theme from midnight -> material (5cd0ed4e) by QuantumSoul
- Add BetterDiscord to TemplateRegistry (e1802da0) by QuantumSoul
- Overview: blurring via ImageMagick when available. (ed7693b3) by Lemmy
- Merge pull request #1399 from fym998/pywalfox (392f9cb1) by Lysec
- NTagFilter: created TemplateSubTab: use NTagFilter AvailableSubTab: use NTagFilter (662154f3) by Ly-sec
- i18n: update colorscheme template translations (5b50a0b4) by Ly-sec
- TemplateSubTab: add tag specific filtering (37e1be3a) by Ly-sec
- i18n: if a key is not translated, fallback to english without ##. Also replaced ## by !! when the key does not existstobe less intrusive (84e97205) by Lemmy
- i18n (db1b4518) by Lemmy
- LockScreen: splimplified button sizing and ensure exact same width + remove dead code. (58dbed20) by Lemmy
- ColorTemplates: add dark/light mode support for pywalfox (2704bb5a) by fym998
- About/Version: Commenting out the donation button until we get the replacement link (478fd284) by Lemmy
- ColorTemplates: add more colors for pywalfox (e9391862) by fym998
- Merge pull request #1398 from MrDowntempo/feat/Even-Nicer-Tabs (b877bc2b) by Lemmy
- added radius to sharp corners (f7edb7c3) by Corey Woodworth
- NTabButton: using simple separate radii on Rectangle. (97ae0924) by Lemmy
- NTabButton: went with a canvas implementation for the background. (6f9d9c0d) by Lemmy
- NTabButton: larger clipping (13f0101b) by Lemmy
- NotificationsPanel: better NTabBar vertical centering (bee67fbc) by Lemmy
- Hooks Settings: added missing session (47121cea) by Lemmy
- NHeader+NText: proper disabled visual (6eaf9523) by Lemmy
- Dock settings: dont hide the second subtab (aea78b5b) by Lemmy
- NTabBar: fix odd case when there is only a single button (137d8010) by Lemmy
- autofmt (4501bb13) by Lemmy
- Audio/VolumeSubTab: removed ending NDivider (74e48d73) by Lemmy
- Merge pull request #1397 from MrDowntempo/feat/NoTitleDivider (bf52ee55) by Lemmy
- Removed Title Divider (18b0395f) by Corey Woodworth
- NotificationPanel: better NTabBar and action buttons (02e7852b) by Lemmy
- Merge pull request #1384 from notiant/patch-6 (1d65544b) by Lemmy
- Merge pull request #1392 from Atlantis-Gura/fix/kitty-color-mapping (bc02d158) by Lemmy
- AudioPanel+NetworkPanel: moving NTabBar in the header (2500780b) by Lemmy
- Merge pull request #1396 from MrDowntempo/feat/Nicer-Tabs (1a8deb98) by Lemmy
- Cleanup (119f039f) by Corey Woodworth
- New tab design (a0b489a2) by Corey Woodworth
- fix(templates): correct color mapping in kitty.conf (226e737a) by Atlantis-Gura
- PluginPanelSlot: improved reliability and fixes potential race condition. (4d486d67) by Lemmy
- Migration 39 should be 40 (84a7912e) by Lemmy
- TemplateSubTab: visual overhaul (45f16013) by Ly-sec
- Merge pull request #1388 from iynaix/fix-newlines (80933a5e) by Lysec
- .github/funding: update (4346fb87) by Lysec
- README: small update (b72c7520) by Lysec
- colors-apply: fix carriage return shell quoting (f8339812) by Lin Xianyi
- i18n: removing i18-json script as we know rely on the new platform which is more powerfull. (c0d4852c) by Lemmy
- colors-apply: ensure a first carriage return when injecting in hyprland, niri & mango (570440ff) by Lemmy
- i18n: de (69d77987) by Lemmy
- i18n: updated translation from https://i18n.noctalia.dev/ (f98b0d2e) by Lemmy
- autofmt (ae741df9) by Lemmy
- i18n: reordering (31d3f78e) by Lemmy
- Merge pull request #1380 from bean-factory/lockkeys-fix (c9edbfe8) by Lemmy
- Merge branch 'main' into lockkeys-fix (d9780e69) by Lemmy
- Merge pull request #1383 from lonerOrz/cb-ipc (f4442f17) by Lemmy
- BatteryService: fix potential undefined (4c8e60a3) by Lemmy
- Niri: optional "hideOnOverview" in bar settings (cff663fe) by Lemmy
- i18n: zh-TW - 46% completed (f9d179f5) by Lemmy
- LockScreen: add right padding to status indicators & date format update (e17bb387) by notiant
- BatteryService: cleanup and (ef99ad51) by Lemmy
- feat: Implement automatic IPC registration for CustomButton widgets (db0a2ccb) by loner
- Color Templates: never disabled code and discord checkboxes - more uniformity with the others programs. (2525f88f) by Lemmy
- Launcher: fix odd icon behaviour, adjust hover color with icon bg enabled (709556a7) by Ly-sec
- LockScreen: move battery logic to BatteryService, prioritize laptop over bt (cdfe1cf6) by Ly-sec
- Fix persistence of setting due to missing registry (87e75ab9) by Mridul Agarwal
- BrightnessService: adjust ddcutil max brightness hopefully (#1378) (bb04164e) by Ly-sec
- Added translations (afa5b6b0) by Mridul Agarwal
- Added option to hide the indicator if the lock status is off (14f22b48) by Mridul Agarwal
- TemplateSubTab: add helix back again (a6744f80) by Ly-sec
- Merge pull request #1370 from iynaix/update-plugin-desc (e4c8e829) by Lysec
- i18n: added empty zh-TW (5a8192ca) by Lemmy
- Merge pull request #1376 from whiskeyPeak/fix-cursor-icon-system-resources-widget (2bca41be) by Lysec
- Revert "Niri: Hide bar and panels when in overview (testing)" (7fa94b42) by Lemmy
- autofmt (bec32a30) by Lemmy
- NiriService: added isConnected boolean to outputCache (dba51542) by Lemmy
- NotificationHistoryPanel: cleanup (0bd22a20) by Ly-sec
- NotificationHistoryPanel: add notification actions (23834bb4) by Ly-sec
- Merge pull request #1377 from CrypticCreator9052/helix_template_change (12090997) by Lysec
- README: add sheast and Radu to supporter list <3 (68e40d88) by Lysec
- Merge pull request #1375 from bokicoder/main (1c922ce0) by Lemmy
- Add proper cursor icon for system Monitor widget when hovering (69dda550) by Henry Riehl
- Replaced helix matugen template (6acec878) by CrypticCreator
- Launch the setup wizard on NixOS as well (2d53cb7c) by wxlyyy
- PluginService: add plugins to be updated in description (6275c98c) by Lin Xianyi
- telemetry: full face in the setup wizard + improved translation (0f1eaa7b) by Lemmy
- autofmt (6eb1579e) by Lemmy
- PluginSystem: added panelOpenScreen so a panel can now on which screen it is currently open. (e221077b) by Lemmy
- Merge branch 'main' of github.com:noctalia-dev/noctalia-shell (88a5e66c) by Lemmy
- Fix telemetry toggle (564e9e8c) by Lemmy
- Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell (d25a02c6) by Ly-sec
- revert #1351 - broke Qt theming (d06f9084) by Ly-sec
- Added anonymous telemetry (2209a469) by Lemmy
- Niri: Hide bar and panels when in overview (testing) (4f230f8c) by Lemmy
- Launcher: allow providers to define if they want the navigation to wrap around. (fa4ad25e) by Lemmy
- settings-default (a3f84f2a) by Lemmy
- Clipboard: fix warning (8a820516) by Lemmy
- Launcher: fix ignore mouse position when the launcher opens (5f2d4a8e) by Lemmy
- Revert "Launcher: don't focus initial mouse position entry, only after mouse movement (fix #1359)" (754f1a89) by Lemmy
- Merge pull request #1365 from DrWeb56/main (8943c86b) by Lemmy
- small fix ru.json (2f05c2bd) by DrWeb56
- small fix ru.json (ab07a56b) by DrWeb56
- Launcher: improve icons colors when hovered (b799dc96) by Lemmy
- autofmt (2b55ae2c) by Lemmy
- i18n update (086c4b90) by Lemmy
- Merge pull request #1177 from sQVe/feat/shutdown-reboot-hooks-clean (94421768) by Lemmy
- Merge branch 'main' into feat/shutdown-reboot-hooks-clean (fdc037cf) by Lemmy
- i18n: calendar.weather-loading => common.weather-loading (6b915465) by Lemmy
- i18n-push script with overwrite feature (d4b77399) by Lemmy
- Merge pull request #1356 from notiant/patch-4 (cfd3f1e0) by Lemmy
- Merge pull request #1352 from turannul/main (cd337967) by Lemmy
- VersionSubTab: ignore fastfetch config (fd9304a6) by Lemmy
- autofmt (ef70775c) by Lemmy
- shell: removing useless import (a57917f7) by Lemmy
- more corrections (6a8b7f04) by notiant
- Launcher: don't focus initial mouse position entry, only after mouse movement (fix #1359) (d1bc14ce) by Ly-sec
- Merge pull request #1357 from bokicoder/main (a3f32b33) by Lysec
- Merge branch 'main' into patch-4 (5750f817) by notiant
- more corrections (b6802650) by notiant
- ClipboardPreview: fix horizontal scroll (b1cb10b2) by wxlyyy
- i18n (279dbe3a) by Ly-sec
- Merge pull request #1351 from wojciechsulocki-gif/feat/kde-colorscheme-auto-apply (b7347202) by Lysec
- Merge pull request #1353 from jumpyjacko/discord-client-legcord (77852417) by Lysec
- About/SysInfo: improve compatibility with old versions of fastfetch (9b305c87) by Lemmy
- add: legcord as a consolidated discord client (13fba626) by Jackson Ly
- BluetoothPanel: dynamic battery icons for devices (bc21ab51) by Turann_
- feat: Auto-apply KDE color schemes with plasma-apply-colorscheme (e341b66a) by WojciechSulocki-Gif
- more corrections (ec01df86) by notiant
- SysInfo: use the existing formatter from SystemStatService - avoid code duplication. (62798d5c) by Lemmy
- refactor(hooks): unify shutdown and reboot hooks into session hook (7592d9cd) by Oskar Grunning
- MediaPlayerPanel: layout adjustments (0aa45f40) by Ly-sec
- feat(hooks): add shutdown and reboot hooks (1e1cfcaf) by Oskar Grunning
- MediaPlayerPanel: fix scaling issue (02a5ee59) by Ly-sec
- Merge pull request #1340 from wojciechsulocki-gif/fix/ddc-brightness-polling (ec8b1d79) by Lysec
- Fix: Add DDC brightness polling and improve refresh logic (fa07a3ea) by WojciechSulocki-Gif
- Merge branch 'main' of https://github.com/noctalia-dev/noctalia-shell (9b199aff) by Ly-sec
- VersionSubTab: fix uptime (22c5cc02) by Ly-sec
- i18n: chinese (eb864bbf) by Lemmy
- autofmt (b074dac7) by Lemmy
- UpdateService: better versionning (34a9f329) by Lemmy
- Merge pull request #1346 from bokicoder/main (eba34d81) by Lysec
- Versionning: change our approach to -git versionning, now the dev version will always be greater than the last official release. (6c62bf3b) by Lemmy
- DraggableDesktopWidget: use panel opacity slider (0dfe9d0b) by Ly-sec
- LockScreen: allow password unlock for fingerprint-enabled users (956c0501) by wxlyyy
- AvailableSubTab: fix overflow for tags (e38881b1) by Ly-sec
- UpdateService: removing dead code (4ef064a8) by Lemmy
- Plugins: added link to plugin page (dc70bcf5) by Lemmy
- About: slightly smaller logo (70500bda) by Lemmy
- i18n (9306ca2f) by Lemmy
- About: system information (16ac5394) by Lemmy
- Merge pull request #1341 from fluviusmagnus/main (906bfc3a) by Lemmy
- i18n: fixed some unintelligible entries in zh-CN (90673761) by 人間夜行
- Back to -git (b9d73d07) by Ly-sec
- Shorten "Load Average" & i18n corrections (d2bd3df0) by notiant