Changelog

Release notes for Noctalia v5 and later.

v5.1.0

September 10, 2026

Noctalia v5.1.0

✨ New Features

Screenshot & Capture

  • Screenshot region editor with drawing annotations (brush, shapes, text, blur, and related tools)
  • Movable annotation toolbar with size presets and a dedicated screenshot settings section
  • Improved annotation workflow: optional close-after-copy, capture new region, unified pointer controls, and clearer unavailable options

Network & Connectivity

  • Cellular (ModemManager) support with mobile data toggle and signal display
  • WPA2/WPA3 Enterprise (802.1X) Wi-Fi with credential form in Control Center

Control Center

  • Manual rescan for DDC/DisplayPort monitors when using ddcutil

Notifications

  • Option to remove dismissed toasts from history (keep_dismissed_in_history)

Greeter

  • Constrained passwordless greeter appearance sync (See docs for more infos)

Launcher

  • Emoji search matches keyword aliases

Settings

  • Collapsible settings group cards with jump rows

🐛 Notable Fixes

  • Lock screen no longer hangs on "Authenticating" during PAM unlock
  • Plugin bar UI inherits widget colors correctly
  • Plugin source cache stays pinned to the origin remote
  • Notifications preserve literal angle-bracket text; markup sanitization no longer strips valid content incorrectly
  • Hyprland workspace widget uses stable workspace identities
  • Bar external IP widget survives bar reloads
  • Calendar vdir account paths expand correctly before validation
  • Icon theme scan deferred until Control Center tabs need it (faster CLI startup)
  • Segmented controls scale correctly at fractional UI scale
  • MacBook charge limit quirks handled in power settings
  • Umbriel template: fixed include.files array parsing, missing color keys, and workspace background key typo
  • Ghostty template reloads independent terminal instances correctly

🔧 Build

  • Umbriel logo added to the bundled noctalia-tabler icon font
View on GitHub →

v5.0.1

September 3, 2026

Noctalia v5.0.1

Noctalia v5 just graduated! v5.0.1 is officially stable. Shoutout to everyone who’s been living on the edge with us through the testing and betas phases, we couldn't have stabilized this without you.

✨ New Features

Calendar

  • Local vdir and vdirsyncer calendar account support with live directory monitoring

Bar & Widgets

  • Workspaces widget option to hide focus-hint icons
  • Bluetooth widget can hide when the adapter is off
  • Weather shows apparent temperature

Plugins

  • Panel entries can declare their layer-shell layer and floating placement
  • Pointer enter/leave/motion callbacks on graph nodes

Window Switcher

  • Optional 'Most Recently Used' window order

Wallpaper

  • Add the current wallpaper to favorites from the wallpaper panel

Themes & Templates

  • Separate theme mode (dark/light) for applications (independent of shell palette)
  • Template hooks can run faster/asynchronously

Other

  • Hebrew language option

🐛 Notable Fixes

  • Wallpaper no longer gets overwritten on the first settings save
  • Bluetooth pairing shows DisplayPasskey requests and keeps the card visible until accepted
  • Desktop calendar honors configured date/time formats
  • Ayu palette colors correction
  • Scrollbars scale with UI and expand on hover
  • Plugin store stays open while installing; bar tooltips hide while a widget panel is open
  • Smart auto-hide bars no longer reveal on workspace switches when configured to stay hidden
  • Media OSD announces track changes per player when the track identity changes
  • Wayland blur works with wayland-protocols 1.45 and skips fully off-surface regions
  • Attached panels with fill sizing can use attached placement
  • Notifications stay in history after dismiss; toast hit regions refresh after stalled frames
  • Battery health in bar tooltips clamped to 100%; battery percent label uses widget color, not icon color
  • Timezone handling improvements; blank clock formats no longer crash the widget
  • Dock: no 1px gap on fractional scale, focused app dots highlighted, tooltips cleared on auto-hide
  • Control Center home media title ellipsized; media progress label init order fixed
  • WebP/VP8X album art decoding for Navidrome-style cover URLs
  • Theme colors_changed fires only when the palette actually changes
  • Template undo removes only configs Noctalia applied; built-in theme cleanup before removal
  • Electron apps follow gtk-theme before color-scheme when applying templates
  • Launcher: pinned apps launch on click; input resets on edit only, not on focus
  • Clipboard poll wakes for queued orphan adoption
  • Screenshot pipe stays enabled on copy/save confirm
  • Privacy indicator detects xdg-desktop-portal-wlr screen captures
  • PipeWire spectrum mode gated by runtime version; spectrum restore volume separated from media role. Should allow sample rate switching.
  • Brightness honors explicit per-output backlight mapping fallback
  • Bar widget selection index stays consistent after deletion
  • Window switcher pointer cursor on tile hover; virtual grid shows pointer over empty cells
  • Hyprland groupbar gradients no longer forced; Mango optional source and screen-off layout preserved
  • OSD shows brightness changes from IPC
  • Icon theme lookup and desktop-entry scan skip inaccessible directories
  • Plugin panels close on a second toggle with the same context
  • Dead-zone and widget action command names localized in settings
  • Compositor detection prefers Umbriel when present

🔧 Build

  • Nix: wrap gsettings-desktop-schemas so tray icons resolve themed names on non-GNOME setups
  • User docs now live in-repo under docs/user
View on GitHub →

v5.0.0-beta.10

Pre-release August 27, 2026

Noctalia v5.0.0-beta.10

✨ New Features

Bar & Widgets

  • Bar-wide and per-widget font scale for independent text sizing
  • Media widget playback progress fill with optional show/hide setting

Media & Audio

  • Per-app audio output routing to a chosen device
  • Media volume OSD showing the active player name
  • PipeWire route mute follows the selected profile device

Calendar

  • Per-event colors from RFC 7986 and common vendor extensions (Apple, Google, Outlook)
  • Passed events fade in the calendar view and refresh over time

Clipboard & Screenshots

  • Clipboard history shows image dimensions
  • Screenshots default to XDG_PICTURES_DIR when set

Other

  • Umbriel community template: stronger overview background tint
  • labwc apply script no longer overwrite user-defined fonts

🐛 Notable Fixes

  • Icon theme lookup tolerates inaccessible directories without failing resolution
  • Per-monitor ddc_bus override and duplicate-bus filtering for identical EDID monitors
  • Dock keeps the pending launch target through activation
  • Launcher preserves usage history when sort-by-usage is disabled
  • Control Center home tab clock updates while the panel is open
  • Control Center custom shortcuts use the glyph picker
  • Clipboard image dimensions refresh after async load
  • Screenshot region overlay uses correct logical dimension rounding
  • Touchpad scrolling matches native Wayland application behavior
  • Fractional-scale button content stays centered
  • Window switcher preserves cursor warp on Umbriel
  • DPMS uses native Umbriel output power actions
  • Umbriel IPC returns full command replies
  • PipeWire audio visualization and event dispatch fixes on newer PipeWire versions
  • Settings plugin store keeps scroll position when navigating back
  • Compositor theme templates: adjusted window shadow/decoration handling for Hyprland, Mango, and Niri

🔧 Build

  • Nix: drop bundled home-manager Noctalia module in favor of upstream
  • Bundled icon font renamed to noctalia-tabler
View on GitHub →

v5.0.0-beta.9

Pre-release August 20, 2026

Noctalia v5.0.0-beta.9

⚠️ Breaking Changes

  • Plugin manifests must now declare a canonical version = "MAJOR.MINOR.PATCH"; manifests with a missing or non-canonical version no longer load, not a concern for all official and community plugins that already respect this convention.

✨ New Features

Bar & Widgets

  • Taskbar: drag to reorder pinned applications; configurable icon_scale and item_spacing, with a tighter default spacing in non-grouped mode
  • Volume widget: hide_when_inactive toggle
  • Audio visualizer: reversed bar direction option
  • Workspaces: optional show_all_outputs to display workspaces from every monitor; Hyprland workspaces ordered by id
  • System monitor: new gpu_vram_used statistic
  • Screenshot region: draggable resize and move handles while selecting
  • Text inputs: readline-style editing shortcuts
  • Touch screens: drag-to-scroll gesture in scrollable surfaces

Launcher

  • App origin indicator toggle ([launcher] show_app_origin_indicator) with AppImage and package origin detection
  • Optional desktop actions surfaced in app results ([launcher] show_app_actions)

Plugins

  • Plugin API 28: native panel context menus through panel.openContextMenu()
  • noctalia.getSetting() reads any effective config value (API 26)
  • Process execution accepts direct argv tables in addition to shell command strings
  • Desktop widgets can mask the wallpaper (API 25)
  • Input frames expose their visibility to plugins (API 27)
  • Auto-update scope configurable as All / Official / None via plugins.auto_update
  • Plugin store: back-to-catalog button on plugin details

Power & Network

  • Battery charge threshold controls in Control Center when the device supports them
  • WPA3 SAE connections supported
  • Idle behaviors accept a locked_timeout, so e.g. screen_off runs at a shorter interval while locked and re-arms after each wake

Wallpaper & Theme

  • Directory wallpaper shuffle avoids repeating an image until the whole set has been shown
  • gsettings color-scheme stays in sync with palette mode changes

Notifications

  • Notification filters support bypass_dnd for selective DND bypass
  • Enabling DND hides already-visible toasts

Calendar

  • Day cells open the default calendar app

Settings & Templates

  • Widget editor sheets render inside the Settings window
  • Disabled built-in templates can be undone
  • Umbriel compositor support with an umbriel theme template; Hyprland template gains glow, shadow, and groupbar text colors

i18n

  • Right-to-left interface support; Arabic added
  • Turkish translation completed

CLI

  • noctalia completions generates bash/zsh/fish completions from the live command schema, including dynamic plugin subcommand completions; bundled for Nix

🐛 Notable Fixes

  • Lockscreen: locking proceeds while outputs disconnect; fcitx input context preserved after unlock; no crash after hotplugging with a deferred lock; no logind lock-request feedback loop; lock surface recovers after resume
  • Notifications: action activation tokens emitted and bound to the source surface; system battery warnings still show during DND
  • Tray: detects an existing StatusNotifierWatcher; hover pills align with the bar capsule thickness; passive item filtering is configurable
  • Taskbar: tiles retained during title and active changes; group hover pill hit-boxes fixed
  • Bar: global font changes apply on config reload; bar and dock surfaces recreated after output moves
  • Launcher: localized entry names and regional locale preserved; AppImage origins no longer shadowed by path; fuzzy no-match scores kept; executable paths resolved for origin detection; null-config guard
  • Dock: pinned entries matched before the full list
  • Settings: tiled buffers no longer inflated past the compositor size; tooltips destroyed before modal close; no layout shift on plugin refresh; no rebuilds on battery metric changes; active settings tab restored after the widget editor exits
  • Panels: panel input excluded from the click shield
  • Audio: hidden shell sound gain ceiling removed
  • Weather: refreshes after startup failures and resume
  • Screen Time: tracking pauses while suspended or locked
  • Calendar: locked-keyring credential recovery with transient-miss retries
  • Network: Wi-Fi toggle no longer snaps back before state catches up
  • Fingerprint / Polkit: fingerprint device left alone during suspend; authentication cancelled when its panel closes
  • Desktop widgets: placement preserved across output scale changes; clock respects the center-text setting; string-list actions shown in the inspector
  • Plugins: translations resolve from the plugin root; clipboard access restored for panels and shortcuts; store keeps scroll offset across rebuilds
  • Render: glyph textures refreshed after resume
  • Sessions: recursive IPC action commands prevented
  • Config: session action fields preserved across overrides; migration warnings point to source keys
  • Screenshot: unresponsive outputs skipped during freeze capture
  • Theme: container saturation offset scaled by headroom
  • Emoji picker: rofl recognized

🔧 Build

  • CLI completions generated from the live schema; Nix bundles shell completions
  • Source assets path no longer embedded; assets resolve from the install prefix
  • Compile fixes: libc++ for icon_resolver
  • Nix flake: deprecated xz tarball replaced with zst
View on GitHub →

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 →