Changelog

Release notes for Noctalia v5 and later.

v5.0.0-beta.8

Pre-release August 10, 2026

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 with submitOnEnter, and scroll follow, observation, and jump-to-bottom properties
  • Plugin API 22 adds relative .luau module imports through require(), with imported modules included in linting and live reload
  • Plugin API 23 adds bounded asynchronous file reads through noctalia.readFileAsync()
  • noctalia.systemStats() exposes CPU freqMhz and maxFreqMhz; plugin-level setting changes now apply to live entries

Calendar & Desktop Widgets

  • Calendar accounts can subscribe directly to ICS, webcal://, and webcals:// 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 direct palettes.<family>.<tone>.<format> access for Matugen compatibility
  • Automatic migrations move keyboard layout custom labels to [shell.keyboard_layout.custom_labels], rename keyboard and sysmon show_icon to show_glyph, split workspace display into label_source and show_labels, and update sysmon presentation keys to visualization and show_value

Lockscreen & Sessions

  • [lockscreen].lock_before_suspend controls whether external suspend requests lock the session through logind's sleep-delay inhibit

Notifications

  • [notification].max_visible limits 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 smart switches a bar directly into smart auto-hide mode; plugins list always 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_changed only 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 libsecret and libsodium inputs and rely on Meson's native_optimizations option instead of patching the build file
View on GitHub →

v5.0.0-beta.7

Pre-release July 30, 2026

Noctalia v5.0.0-beta.7

✨ New Features

Bar & Widgets

  • Screenshot: remember last capture region (settings toggle), plus Ctrl+C / Ctrl+S shortcuts while selecting area
  • Audio visualizer: max width raised to 2048
  • Weather: add tooltip
  • Workspaces: toggle to disable hover color changes
  • System monitor: blend gauge colors in HSV space

Plugins

  • Runtime-scoped sound API for plugins
  • Timezone support in formatTime (API 19); shell time/date formats exposed to scripts
  • Service enable/exit reasons; frame ticks delivered to plugin panels

Lockscreen & Sessions

  • Reintroduce unlock hint
  • Lock before sleep via logind delay inhibit (prevent premature lock in the same way as sway/hypridle does)

Clipboard

  • Delete keybind action
  • IPC: append text (copy) and read current text (paste)

Notifications / OSD

  • Track fcitx input method changes in the OSD
  • Transient OSD controls over IPC

Bluetooth & Network

  • Bluetooth battery percent from UPower when available
  • Offline-mode banners on network-dependent settings pages

Greeter Sync

  • Use sync.toml as the sync target, greeter.toml is independent

Other

  • Floating panel wayland layer is configurable (pop vs overlay)
  • Korean added to supported languages (translation in progress)
  • Per-item tooltips in virtual grids (settings community template grid and similar)

🐛 Notable Fixes

  • Notifications: retention cleanup no longer empties history entries fixes “Untitled notification”
  • Input: caret placement and scroll stay consistent when focusing/blurring long fields
  • Clipboard: move a selection to the top when it is copied again
  • Taskbar: keep clickable areas when window titles refresh
  • Wayland: keep toplevels that never get output_enter in output-scoped lists
  • Lockscreen / tray / dock / bar auto-hide and launcher D-Bus activation polish
  • Settings: keep the widget editor centered during window animations; clear default-equivalent keybind overrides; expose step args for default widget actions; async plugin-store thumbnails
  • Theme: stronger contrast for wallpaper palettes, light-mode shadows, OKLCH contrast rework
  • Audio: clearer grouped device menus; battery state glyph always drawn outside the graphic
  • Hardware info: prefer amdgpu.ids for AMD GPU names
  • Calendar: replace the custom iCalendar parser with libical
  • Tooltip text measured through the label layout engine
  • Control Center / session panel spacing and card margin consistency; trailing shortcuts can span the full grid width; compact sidebar tab tooltips
  • Control Center: separate saved and available Wi-Fi networks

🔧 Build

  • Replace vendored dr_wav with system libsndfile (now support most classic audio format)
  • Nix: apply autoAddDriverRunpath unconditionally
View on GitHub →

v5.0.0-beta.6

Pre-release July 27, 2026

Noctalia v5.0.0-beta.6

✨ New Features

Control Center

  • Toggle to hide shortcut labels; icon-only shortcuts scale up and stay centered

Lockscreen

  • Optional media and weather on the login box, with toggles in the widget editor
  • Password hint always shown on the idle lock screen

Bar & Widgets

  • Configurable actions per widget, define your own click and scroll behavior.
  • Spacer widgets are non-interactive by default

Plugins

  • noctalia.openSettings() and IPC to open a plugin’s settings from script
  • Expanded system stats API for plugin authors
  • Plugin store: sort plugins and filter by source/category in the searchable store sheet

Settings & Sessions

  • Browse and install community templates from a searchable store sheet in Settings
  • Browse buttons on all plugin path settings

Clipboard

  • Last copied item stays pasteable after the source app exits

Other

  • JPEG XL image decode support
  • Improved Markdown rendering and table overflow handling
  • Panel card borders split out from general panel border setting (shell.panel.borders vs card-specific styling)

🐛 Notable Fixes

  • Notification filters apply to internal/plugin toasts (history still external-only)
  • Notification filter editor saves Content Regex when using Apply or toggling options
  • Polkit auth panel opens during fingerprint-only auth and sizes to fingerprint-only content
  • Control Center user-card wallpaper and scrim draw as one rounded shape, no more artifacts on the edge
  • Plugin shortcuts reload when reopening Control Center if the script changed while closed
  • Double/triple-click in text inputs selects the full word or line
  • Lockscreen compact layout reserves status row height; forecast days fit the weather budget; sysmon graphs keep updating on lockscreen widgets
  • Desktop media player relayouts when track title or artist changes
  • Bar capsule group hover pills and hit targets align with the outer capsule node
  • Bar keyboard layout label truncates correctly for multi-codepoint labels
  • CalDAV password retained during calendar account discovery
  • Clipboard selection data no longer corrupted after move operations
  • Theme template application preserves symlinks
  • Screenshot region overlay takes pointer input over the widgets editor
  • Settings window stays usable while dialog sheets are open; no longer closes when opening widget editors
  • Capsule groups stay configurable when a bar lane override is reset
View on GitHub →

v5.0.0-beta.5

Pre-release July 25, 2026

Noctalia v5.0.0-beta.5

✨ New Features

Bar & Widgets

  • Per-widget custom gesture actions (clicks, scrolls, and related bindings) with defaults for built-in widgets; plugins can declare their own
  • Settings: foldable Actions group per widget for those bindings
  • Dead-zone input routes into the same gesture actions as the widget
  • Opt-in: one scroll action per wheel notch / flick for cycling verbs (volume, workspaces, and similar)

Lockscreen

  • Compact and Regular login box layouts

Desktop Widgets

  • Lasso select and group transforms in the desktop widgets editor

Plugins & Panels

  • Install the newest plugin revision the host’s plugin API supports
  • capture_keys, system stats / per-core CPU for plugins, and closures as UI tree callbacks
  • Persistent plugin panels outside the active-panel slot, plus keyboard_focus on panel entries

Dock & Wallpaper

  • Dock: optional Wayland overlay layer
  • Wallpaper panel: sort by random (stable across refreshes)

Calendar & Screen Time

  • Optional ISO week numbers on the calendar grid
  • Screen time: open hourly day detail from the multi-day chart

IPC

  • Workspace, keyboard layout, network, and directional power verbs
  • State-query commands marked unbindable so action pickers skip them

🐛 Notable Fixes

  • Taskbar: hide anonymous XWayland menu popups (no app id and no title); keep compositor focus / workspace matching reliable
  • Hyprland: stop workspace active/occupied/urgent flags from clearing on unchanged snapshots
  • Panels: honor panel_anchor_bar over the opening source bar; center panels when the focused output has no bar
  • Workspaces: fix hover-animation crash on widget teardown / bar reload
  • Dialogs: stop auto-dismissing popups on outside click
  • Launcher: faster open/search, honor locale in the calculator, default /calc, invalidate stale icon-cache misses
  • Theme CLI: apply -c custom colors before -r template render
  • Polkit: harden auth and keep chained prompts intact
  • Sysmon: skip GPU polling when nothing is showing GPU stats
  • Input: reset scroll detent carry after a gesture pause; one action per wheel notch for cycling verbs

🔧 Build

  • Packaging: document the project maintenance policy for packagers
View on GitHub →

v5.0.0-beta.4

Pre-release July 23, 2026

Noctalia v5.0.0-beta.4

✨ New Features

Bar & Widgets

  • New Text bar widget
  • Taskbar: pinned apps without grouping, idle pinned opacity, workspace group content modes (icons / count / dots), middle-click to close windows
  • Battery: display content options (percent / time / rate) and a none display mode
  • Sysmon: extra disk stats, text/glyph order and unit visibility, none display type; GPU monitoring on by default
  • Media: artist-first display order setting, scroll wheel and side buttons for track skip
  • Network: connection state beside the VPN indicator; optional WAN IP in the network widget tooltip
  • Notification widget stays visible while its panel is open (with auto-hide)
  • Workspace urgent color, per-widget scroll enable, smart auto-hide, show-on-workspace-switch
  • Volume widget: effects-profile glyph overrides
  • Broader border and shadow options across supported elements

Panels & Launcher

  • Global panel anchor bar for multi-bar setups
  • Optional list-item background in launcher and clipboard
  • Launcher auto-paste after copy activations; opt out of currency exchange fetching
  • Clipboard page up/down; encrypted clipboard history with configurable key sources
  • Session panel: toggle to show shortcuts
  • Window switcher dismisses on outside click
  • Polkit panel is no longer dismissed with outside-click

Desktop & OSD

  • New Volume desktop widget
  • Hot corners: configurable activation delay
  • OSD master enable; keyboard backlight OSD; audio sink/source name in volume OSD
  • IPC for speaker and mic volume OSD

Calendar & Lock

  • CalDAV visibility toggles, event date/time formatting, password-file credentials, secured credential storage
  • Password input glyph animation (V4-style eye candy)
  • Screenshot: show cursor option

Plugins & Store

  • Plugin API 8: dismiss_on_outside_click, hover callbacks, interactive row/column nodes, declarative panel drag-and-drop, string map settings, httpStream, allowInsecureTls
  • Plugin store: filter by source, keyboard navigation, Community badge, open plugin webpage

Settings & Security

  • Encrypted persistence under a master key (secret store / libsecret)
  • Settings window sized to a golden rectangle of the output

Theming

  • Firefox theming via noctalia-pywalfox native messaging host

🐛 Notable Fixes

  • Panels attach to the first enabled bar when no anchor is set (multi-bar / disabled-bar cases)
  • Fixed mode_changed hook not firing
  • Settings: confirm individual override resets; overridden filter matches override badges
  • Screen corners stay above the bar after bar config changes
  • Taskbar: empty workspace scroll, KDE context menus, tooltips on title change, show windows without app id
  • Wallpaper: light/dark directories with theme.mode=auto, natural filename sort, favorite palette on auto rotation
  • Network: bridge/bond primary and slave link reporting
  • PipeWire: don’t override volumes set by other apps; spectrum silent-sample fix
  • Hyprland: focus launch monitor; workspace refresh after change_id
  • Dock / bar hit targets, tooltips, and context-menu dismiss polish
  • Ctrl shortcuts under non-Latin layouts; desktop-entry escaped characters
  • Plugins: callback CPU budgets, detached commands without login shell, catalog git off the main thread
  • Lockscreen custom keyboard-layout labels; idle grace torn down before suspend
  • Swedish and Turkish language registration

🔧 Build

  • Packaging guide (PACKAGING.md) and distro/Repology notes
  • New: libsodium and libsecret dependencies
  • Native CPU optimizations opt-in; meson dependency-version regex fix
View on GitHub →

v5.0.0-beta.3

Pre-release July 16, 2026

Release v5.0.0-beta.3

✨ New Features

Bar & Widgets

  • Smart auto-hide for the bar (show on empty workspace, hide when windows are open)
  • Per-widget interactive toggle in widget settings
  • Workspace widget focus-hint style; workspace appear/disappear animations
  • Taskbar: minimal style option for workspace labels
  • Network widget: optional VPN name label when a VPN is connected
  • Clock widgets (bar and desktop): timezone setting
  • Custom images on bar widgets expand ~ / user paths

Dock

  • Smart auto-hide option (same empty-workspace behavior as the bar)
  • Drag-to-reorder pinned icons
  • Border color and width settings (same model as the bar)
  • Focus newly launched apps from the dock more reliably

Launcher

  • Configurable per-provider prefixes and global-search opt-in
  • Provider presence/status validation; prefix controls in Settings
  • Freeform dmenu query arguments; plugin setQuery is prefix-relative

Plugins

  • Plugin store: 24 plugins are now available
  • Persistent per-plugin storage via noctalia.pluginDataDir()
  • Lifecycle onExit; scroll forwarded to Luau as onScroll
  • Color picker dialog API; noctalia.appIconPath icon resolution
  • Bar widgets expose barWidget.outputName
  • Plugin store: clearer update UI, source badge colors, header links to noctalia.dev / GitHub
  • Setting labels use label_key only (breaking for plugins still using plain label)
  • Declarative UI: button tooltips and a controlSize height tier

Theming & Appearance

  • Global button border toggle
  • Pure black dark mode for OLED panels
  • Custom theme colors: color_dark / color_light
  • Day/night schedule: custom times for theme switching
  • Mango: group_bar_decorate color tokens

Settings & Sessions

  • Accessibility section: ui_scale and high_contrast moved under [accessibility]
  • Session panel: grid layout option; power settings consolidated
  • Settings migration helper; stricter config validation before save / on reload
  • Lockscreen login box: center password text toggle
  • Wallpaper: option to disable all transition effects
  • Setup wizard sets a default wallpaper

Notifications / OSD

  • Border toggles for notification toasts and OSD popups (on by default)

System & Compositor

  • Sysmon: Support for GPU usage and VRAM on Intel i915/xe
  • Explicit backlight device override
  • Nix package: git on the runtime path

🐛 Notable Fixes

  • Dock: active icon scale updates under magnification when opacities match; magnified instance-count badges no longer clipped; tooltip dismiss during pinned drag; launcher focus / activation binding
  • Taskbar: grouped capsule sizing, workspace badges, clipping/overlap, title alignment, mute/minimal badge colors, strip padding
  • Context menus: scroll long menus and navigate with keybinds
  • Polkit: panel height follows authentication message content
  • Bluetooth: hide battery % when disconnected; avoid full list rebuild on RSSI updates
  • Network: refresh Wi‑Fi signal in place; rfkill applies to all matching devices
  • Audio/PipeWire: show all input devices; treat displayed zero volume as muted
  • Lockscreen: blur backgrounds at output resolution; redraw after resume
  • Theme: Catppuccin Latte light terminal palette; single-mode custom colors / blend source; colors_changed hooks wait for templates
  • Night light: smoother temperature ramps
  • Notifications: top-aligned toast icons; grace timer when a toast finishes; error accent on persistent critical toasts
  • Calendar: skip unselected Google calendars
  • Launcher: don’t record usage when sort-by-usage is off
  • Control center: home clock/weather card height; card borders no longer cut off
  • Settings: plugin source editor teardown; linked settings in page reset; search focus UAF; floating panel alignment; capsule radius visibility; custom schedule times before activation
  • Config: path expansion restored; plugin settings exported; default plugin sources seeded; accessibility / hot_corners / widget enabled validation; drop undocumented [notifications] alias
  • Plugins: stale store thumbnails; click anchor for attached panels; description for label vs label_key warnings
  • Input: password field info-leak hardening; touchpad scroll quantized to wheel steps; hover resync after dialogs
  • Clipboard hover jitter; media title marquee stops while hidden
  • Render: recover EGL share group after GPU reset; skip unchanged animation frames; cache redundant GLES state
  • Workspaces: delayed empty-workspace color transition; Mango overview active workspace; Niri switcher prefers compositor focus
  • Bar: show_on_workspace_switch initial reveal; tray hover respects capsule settings
  • Session: primary keyboard selection in the session panel
  • Hot corners: only create surfaces for configured corners
  • App: defer surface redraws on resume/unlock; toast fallback render to break compositor stalls
View on GitHub →

v5.0.0-beta2

Pre-release July 9, 2026

Noctalia v5.0.0-beta2

✨ New Features

Bar & Widgets

  • Hover highlight (foreground-tinted state layer) for bar widgets, capsule groups, taskbar, tray, and workspace widget with per-widget opt-out
  • Concave/inverted corners for bar and dock, toggled via setting (replaces negative-radius hack)
  • Eye toggle to hide/show individual bar widgets and capsule groups
  • Custom images on glyph widgets
  • Media widget: option to hide artist name
  • Tray: drawer_item_size configuration

Plugins

  • Any plugin can now load custom fonts
  • Declarative bar-widget UI via barWidget.render, inheriting bar font/scale
  • onConfigChanged service callback for in-place settings reload
  • Input focus support, multiline input, panel "fill" sizing, and new script bindings
  • Role color alpha suffix support (role/alpha); redesigned plugin store home/detail pages; collapsed store categories by default

Network & Connectivity

  • IWD support for WiFi
  • WAN/WAN-IP display (opt-in for privacy)
  • Bluetooth: actively reconnect trusted devices on power-on and startup

Settings & Sessions

  • Regex content filtering for notifications + filter duration override
  • Detach power and custom session commands
  • Launcher settings extracted into their own section; OnlyShowIn/NotShowIn desktop-entry support
  • Screen-sharing filter regex (privacy)

Other

  • IPC: wallpaper next/previous, bar-reserve-toggle, notification-show payloads with two-arg CLI body
  • Screenshot: expose generated path to pipe commands
  • Calendar: toggle the events panel
  • Runtime log-level control

🐛 Notable Fixes

  • Calendar: client-side CalDAV recurrence expansion
  • Wallpaper: per-display KDE/Plasma sync, crash-loop prevention on invalid paths, precise IPC outcomes
  • Lockscreen: hide idle grace overlay on unlock, dim overlay through lock handoff, hideable login boxes
  • Workspaces: jitter fixes, Hyprland persistent-workspace restore on reload, Mango tag mapping
  • Audio/PipeWire: bar volume/OSD mute sync, simplified relative volume steps
  • Brightness: sysfs fallback when logind D-Bus is unavailable
  • Panel/tooltip focus, scaling, and placement fixes; desktop cross-monitor widget drag; hot-corners reload guard

🔧 Build

  • Require system md4c/json/toml++/stb
  • Nix devshell updates for new dependencies
View on GitHub →

v5.0.0-beta1

Pre-release July 2, 2026

Noctalia v5.0.0-beta1

View on GitHub →