✨ 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
setQueryis prefix-relative
Plugins
- Plugin store: 24 plugins are now available
- Persistent per-plugin storage via
noctalia.pluginDataDir() - Lifecycle
onExit; scroll forwarded to Luau asonScroll - Color picker dialog API;
noctalia.appIconPathicon resolution - Bar widgets expose
barWidget.outputName - Plugin store: clearer update UI, source badge colors, header links to noctalia.dev / GitHub
- Setting labels use
label_keyonly (breaking for plugins still using plainlabel) - Declarative UI: button tooltips and a
controlSizeheight 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_decoratecolor tokens
Settings & Sessions
- Accessibility section:
ui_scaleandhigh_contrastmoved 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_changedhooks 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_keywarnings - 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_switchinitial 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