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_scaleanditem_spacing, with a tighter default spacing in non-grouped mode - Volume widget:
hide_when_inactivetoggle - Audio visualizer:
reversedbar direction option - Workspaces: optional
show_all_outputsto display workspaces from every monitor; Hyprland workspaces ordered by id - System monitor: new
gpu_vram_usedstatistic - 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_offruns 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_dndfor 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
umbrieltheme template; Hyprland template gains glow, shadow, and groupbar text colors
i18n
- Right-to-left interface support; Arabic added
- Turkish translation completed
CLI
noctalia completionsgenerates 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:
roflrecognized
🔧 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