·
7 commits
to main
since this release
Noctalia v5.0.0-beta.8
✨ New Features
Bar & Widgets
- Capsule groups can collapse into hover accordions, expand toward either end, override their internal spacing, and group non-adjacent widgets from the editor
- System monitor widgets can hide their glyph and display CPU frequency; the desktop system monitor gains the same statistic
- Taskbar active indicators support a configurable
active_indicator_color - Individual widgets can be reset to their defaults from the widget editor
Plugins
- Plugin API 21 adds
ui.markdown, chat-style input submission withsubmitOnEnter, and scroll follow, observation, and jump-to-bottom properties - Plugin API 22 adds relative
.luaumodule imports throughrequire(), with imported modules included in linting and live reload - Plugin API 23 adds bounded asynchronous file reads through
noctalia.readFileAsync() noctalia.systemStats()exposes CPUfreqMhzandmaxFreqMhz; plugin-level setting changes now apply to live entries
Calendar & Desktop Widgets
- Calendar accounts can subscribe directly to ICS,
webcal://, andwebcals://URLs - Meeting links can be opened from calendar event cards
- Calendar joins the built-in desktop widgets
Settings & Themes
- Optional translucent Settings window background and a toggle to hide the Control Center session button
- Config errors include their source location
- Template variables can read the active config and
icon_theme, with directpalettes.<family>.<tone>.<format>access for Matugen compatibility - Automatic migrations move keyboard layout custom labels to
[shell.keyboard_layout.custom_labels], rename keyboard and sysmonshow_icontoshow_glyph, split workspacedisplayintolabel_sourceandshow_labels, and update sysmon presentation keys tovisualizationandshow_value
Lockscreen & Sessions
[lockscreen].lock_before_suspendcontrols whether external suspend requests lock the session through logind's sleep-delay inhibit
Notifications
[notification].max_visiblelimits how many notification toasts can be on screen at once- Critical notifications use a stronger error-colored border
Bluetooth & Network
- Wi-Fi tooltips and current-connection details show the active band
IPC & Outputs
bar-auto-hide-set smartswitches a bar directly into smart auto-hide mode;plugins listalways reports whether each plugin is enabled or disabled- Monitor selectors can match make, model, or serial number on compositors with
wlr-output-management - Greeter sync stages each output's display scale alongside its layout and transform
Other
- Shift plus the configured Validate key opens the selected app's context menu in the Launcher
- OpenGL ES capability checks fail early with clear startup diagnostics when required renderer support is missing
🐛 Notable Fixes
- Calendar / Screen Time: use nominative standalone month names, localized weekday labels, and correctly remeasure duration columns after range changes
- Settings: prevent duplicate deferred rebuilds from freezing the shell, cull off-screen settings controls, preserve lane override controls across capsule groups, and keep scrollbar thumbs stable when dragging begins
- Control Center: scroll monitor cards when many displays are present, preserve Bluetooth row expansion through updates, honor explicit hidden-tab requests, and disconnect every active VPN from the header toggle
- Weather / HTTP: honor manually configured coordinates, show daily temperatures from minimum to maximum, and abandon stuck DNS lookups without blocking the main loop
- Theme / Wallpaper: re-evaluate automatic light/dark mode after resume, emit
colors_changedonly for actual palette changes, and fade startup wallpapers over the existing background instead of black - Sessions: avoid an unwanted lock for Noctalia-initiated plain suspend, prevent child processes from retaining logind inhibit descriptors, and keep countdown actions running while hovered
- Taskbar / Dock: use exact compositor window identities for reliable Niri focus, close, and instance cycling
- Workspaces: prevent phantom Hyprland workspace entries
- Tray: hide passive items, honor adjacent spacing in the drawer, recognize mixed-case attention states, and prevent edge hover highlights from clipping
- Notifications / Tooltips: rebuild at the destination output scale and keep tooltip rendering isolated from other surfaces
- Rendering: sharpen and smooth rounded-rectangle and screen-corner antialiasing; prevent wrapped-text cache collisions
- Desktop Widgets: disable interactions while editing and bind newly created widget trees to the correct surface renderer
- Fonts: handle an empty Fontconfig catalog without crashing
- Emoji Picker: improve search keywords and recognize 🎉 as
tada - Launcher: launch apps on the launcher's own output
- Bar: restore screen-edge clicks for plugin widgets and stabilize accordion hover/collapse tracking
- Audio: recognize virtual PipeWire sources
- Plugin Store: Escape from plugin details returns to the plugin list
- Wayland: exit cleanly when the display socket closes and retain output-mode objects until the compositor finishes with them
- Panels: floating panel borders inherit the panel's opacity
🔧 Build
- Nix: disable the conflicting nixpkgs Noctalia module when using the flake-provided module
- Guix: add
libsecretandlibsodiuminputs and rely on Meson'snative_optimizationsoption instead of patching the build file