<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
	<title>Noctalia</title>
	<link>https://noctalia.dev/blog</link>
	<description>Blog posts and release notes from the Noctalia team.</description>
	<language>en-us</language>
	<lastBuildDate>Mon, 10 Aug 2026 16:06:49 GMT</lastBuildDate>
	<atom:link href="https://noctalia.dev/rss.xml" rel="self" type="application/rss+xml" />
	
<item>
	<title>Noctalia v5.0.0-beta.8 (Pre-release)</title>
	<link>https://noctalia.dev/changelogs#v5.0.0-beta.8</link>
	<guid>https://github.com/noctalia-dev/noctalia/releases/tag/v5.0.0-beta.8</guid>
	<pubDate>Mon, 10 Aug 2026 16:06:49 GMT</pubDate>
	<category>Release</category>
	<description><![CDATA[<h2>Noctalia v5.0.0-beta.8</h2>
<h3>✨ New Features</h3>
<p>Bar &amp; Widgets</p>
<ul>
<li>Capsule groups can collapse into hover accordions, expand toward either end, override their internal spacing, and group non-adjacent widgets from the editor</li>
<li>System monitor widgets can hide their glyph and display CPU frequency; the desktop system monitor gains the same statistic</li>
<li>Taskbar active indicators support a configurable <code>active_indicator_color</code></li>
<li>Individual widgets can be reset to their defaults from the widget editor</li>
</ul>
<p>Plugins</p>
<ul>
<li>Plugin API 21 adds <code>ui.markdown</code>, chat-style input submission with <code>submitOnEnter</code>, and scroll follow, observation, and jump-to-bottom properties</li>
<li>Plugin API 22 adds relative <code>.luau</code> module imports through <code>require()</code>, with imported modules included in linting and live reload</li>
<li>Plugin API 23 adds bounded asynchronous file reads through <code>noctalia.readFileAsync()</code></li>
<li><code>noctalia.systemStats()</code> exposes CPU <code>freqMhz</code> and <code>maxFreqMhz</code>; plugin-level setting changes now apply to live entries</li>
</ul>
<p>Calendar &amp; Desktop Widgets</p>
<ul>
<li>Calendar accounts can subscribe directly to ICS, <code>webcal://</code>, and <code>webcals://</code> URLs</li>
<li>Meeting links can be opened from calendar event cards</li>
<li>Calendar joins the built-in desktop widgets</li>
</ul>
<p>Settings &amp; Themes</p>
<ul>
<li>Optional translucent Settings window background and a toggle to hide the Control Center session button</li>
<li>Config errors include their source location</li>
<li>Template variables can read the active config and <code>icon_theme</code>, with direct <code>palettes.&lt;family&gt;.&lt;tone&gt;.&lt;format&gt;</code> access for Matugen compatibility</li>
<li>Automatic migrations move keyboard layout custom labels to <code>[shell.keyboard_layout.custom_labels]</code>, rename keyboard and sysmon <code>show_icon</code> to <code>show_glyph</code>, split workspace <code>display</code> into <code>label_source</code> and <code>show_labels</code>, and update sysmon presentation keys to <code>visualization</code> and <code>show_value</code></li>
</ul>
<p>Lockscreen &amp; Sessions</p>
<ul>
<li><code>[lockscreen].lock_before_suspend</code> controls whether external suspend requests lock the session through logind&#39;s sleep-delay inhibit</li>
</ul>
<p>Notifications</p>
<ul>
<li><code>[notification].max_visible</code> limits how many notification toasts can be on screen at once</li>
<li>Critical notifications use a stronger error-colored border</li>
</ul>
<p>Bluetooth &amp; Network</p>
<ul>
<li>Wi-Fi tooltips and current-connection details show the active band</li>
</ul>
<p>IPC &amp; Outputs</p>
<ul>
<li><code>bar-auto-hide-set smart</code> switches a bar directly into smart auto-hide mode; <code>plugins list</code> always reports whether each plugin is enabled or disabled</li>
<li>Monitor selectors can match make, model, or serial number on compositors with <code>wlr-output-management</code></li>
<li>Greeter sync stages each output&#39;s display scale alongside its layout and transform</li>
</ul>
<p>Other</p>
<ul>
<li>Shift plus the configured Validate key opens the selected app&#39;s context menu in the Launcher</li>
<li>OpenGL ES capability checks fail early with clear startup diagnostics when required renderer support is missing</li>
</ul>
<h3>🐛 Notable Fixes</h3>
<ul>
<li>Calendar / Screen Time: use nominative standalone month names, localized weekday labels, and correctly remeasure duration columns after range changes</li>
<li>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</li>
<li>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</li>
<li>Weather / HTTP: honor manually configured coordinates, show daily temperatures from minimum to maximum, and abandon stuck DNS lookups without blocking the main loop</li>
<li>Theme / Wallpaper: re-evaluate automatic light/dark mode after resume, emit <code>colors_changed</code> only for actual palette changes, and fade startup wallpapers over the existing background instead of black</li>
<li>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</li>
<li>Taskbar / Dock: use exact compositor window identities for reliable Niri focus, close, and instance cycling</li>
<li>Workspaces: prevent phantom Hyprland workspace entries</li>
<li>Tray: hide passive items, honor adjacent spacing in the drawer, recognize mixed-case attention states, and prevent edge hover highlights from clipping</li>
<li>Notifications / Tooltips: rebuild at the destination output scale and keep tooltip rendering isolated from other surfaces</li>
<li>Rendering: sharpen and smooth rounded-rectangle and screen-corner antialiasing; prevent wrapped-text cache collisions</li>
<li>Desktop Widgets: disable interactions while editing and bind newly created widget trees to the correct surface renderer</li>
<li>Fonts: handle an empty Fontconfig catalog without crashing</li>
<li>Emoji Picker: improve search keywords and recognize 🎉 as <code>tada</code></li>
<li>Launcher: launch apps on the launcher&#39;s own output</li>
<li>Bar: restore screen-edge clicks for plugin widgets and stabilize accordion hover/collapse tracking</li>
<li>Audio: recognize virtual PipeWire sources</li>
<li>Plugin Store: Escape from plugin details returns to the plugin list</li>
<li>Wayland: exit cleanly when the display socket closes and retain output-mode objects until the compositor finishes with them</li>
<li>Panels: floating panel borders inherit the panel&#39;s opacity</li>
</ul>
<h3>🔧 Build</h3>
<ul>
<li>Nix: disable the conflicting nixpkgs Noctalia module when using the flake-provided module</li>
<li>Guix: add <code>libsecret</code> and <code>libsodium</code> inputs and rely on Meson&#39;s <code>native_optimizations</code> option instead of patching the build file</li>
</ul>
]]></description>
</item>

<item>
	<title>Noctalia v5.0.0-beta.7 (Pre-release)</title>
	<link>https://noctalia.dev/changelogs#v5.0.0-beta.7</link>
	<guid>https://github.com/noctalia-dev/noctalia/releases/tag/v5.0.0-beta.7</guid>
	<pubDate>Thu, 30 Jul 2026 21:03:10 GMT</pubDate>
	<category>Release</category>
	<description><![CDATA[<h2>Noctalia v5.0.0-beta.7</h2>
<h3>✨ New Features</h3>
<p>Bar &amp; Widgets</p>
<ul>
<li>Screenshot: remember last capture region (settings toggle), plus Ctrl+C / Ctrl+S shortcuts while selecting area</li>
<li>Audio visualizer: max width raised to 2048</li>
<li>Weather: add tooltip</li>
<li>Workspaces: toggle to disable hover color changes</li>
<li>System monitor: blend gauge colors in HSV space</li>
</ul>
<p>Plugins</p>
<ul>
<li>Runtime-scoped sound API for plugins</li>
<li>Timezone support in <code>formatTime</code> (API 19); shell time/date formats exposed to scripts</li>
<li>Service enable/exit reasons; frame ticks delivered to plugin panels</li>
</ul>
<p>Lockscreen &amp; Sessions</p>
<ul>
<li>Reintroduce unlock hint</li>
<li>Lock before sleep via logind delay inhibit (prevent premature lock in the same way as sway/hypridle does)</li>
</ul>
<p>Clipboard</p>
<ul>
<li>Delete keybind action</li>
<li>IPC: append text (<code>copy</code>) and read current text (<code>paste</code>)</li>
</ul>
<p>Notifications / OSD</p>
<ul>
<li>Track fcitx input method changes in the OSD</li>
<li>Transient OSD controls over IPC</li>
</ul>
<p>Bluetooth &amp; Network</p>
<ul>
<li>Bluetooth battery percent from UPower when available</li>
<li>Offline-mode banners on network-dependent settings pages</li>
</ul>
<p>Greeter Sync</p>
<ul>
<li>Use <code>sync.toml</code> as the sync target, greeter.toml is independent</li>
</ul>
<p>Other</p>
<ul>
<li>Floating panel wayland layer is configurable (pop vs overlay)</li>
<li>Korean added to supported languages (translation in progress)</li>
<li>Per-item tooltips in virtual grids (settings community template grid and similar)</li>
</ul>
<h3>🐛 Notable Fixes</h3>
<ul>
<li>Notifications: retention cleanup no longer empties history entries fixes “Untitled notification”</li>
<li>Input: caret placement and scroll stay consistent when focusing/blurring long fields</li>
<li>Clipboard: move a selection to the top when it is copied again</li>
<li>Taskbar: keep clickable areas when window titles refresh</li>
<li>Wayland: keep toplevels that never get <code>output_enter</code> in output-scoped lists</li>
<li>Lockscreen / tray / dock / bar auto-hide and launcher D-Bus activation polish</li>
<li>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</li>
<li>Theme: stronger contrast for wallpaper palettes, light-mode shadows, OKLCH contrast rework</li>
<li>Audio: clearer grouped device menus; battery state glyph always drawn outside the graphic</li>
<li>Hardware info: prefer <code>amdgpu.ids</code> for AMD GPU names</li>
<li>Calendar: replace the custom iCalendar parser with libical</li>
<li>Tooltip text measured through the label layout engine</li>
<li>Control Center / session panel spacing and card margin consistency; trailing shortcuts can span the full grid width; compact sidebar tab tooltips</li>
<li>Control Center: separate saved and available Wi-Fi networks</li>
</ul>
<h3>🔧 Build</h3>
<ul>
<li>Replace vendored <code>dr_wav</code> with system <strong>libsndfile</strong> (now support most classic audio format)</li>
<li>Nix: apply <code>autoAddDriverRunpath</code> unconditionally</li>
</ul>
]]></description>
</item>

<item>
	<title>First Anniversary</title>
	<link>https://noctalia.dev/blog/first-anniversary</link>
	<guid>https://noctalia.dev/blog/first-anniversary</guid>
	<pubDate>Tue, 28 Jul 2026 00:00:00 GMT</pubDate>
	<category>Blog</category>
	<description>One year of Noctalia and counting</description>
</item>

<item>
	<title>Noctalia v5.0.0-beta.6 (Pre-release)</title>
	<link>https://noctalia.dev/changelogs#v5.0.0-beta.6</link>
	<guid>https://github.com/noctalia-dev/noctalia/releases/tag/v5.0.0-beta.6</guid>
	<pubDate>Mon, 27 Jul 2026 22:43:15 GMT</pubDate>
	<category>Release</category>
	<description><![CDATA[<h2>Noctalia v5.0.0-beta.6</h2>
<h3>✨ New Features</h3>
<p>Control Center</p>
<ul>
<li>Toggle to hide shortcut labels; icon-only shortcuts scale up and stay centered</li>
</ul>
<p>Lockscreen</p>
<ul>
<li>Optional media and weather on the login box, with toggles in the widget editor</li>
<li>Password hint always shown on the idle lock screen</li>
</ul>
<p>Bar &amp; Widgets</p>
<ul>
<li>Configurable actions per widget, define your own click and scroll behavior.</li>
<li>Spacer widgets are non-interactive by default</li>
</ul>
<p>Plugins</p>
<ul>
<li><code>noctalia.openSettings()</code> and IPC to open a plugin’s settings from script</li>
<li>Expanded system stats API for plugin authors</li>
<li>Plugin store: sort plugins and filter by source/category in the searchable store sheet</li>
</ul>
<p>Settings &amp; Sessions</p>
<ul>
<li>Browse and install community templates from a searchable store sheet in Settings</li>
<li>Browse buttons on all plugin path settings</li>
</ul>
<p>Clipboard</p>
<ul>
<li>Last copied item stays pasteable after the source app exits</li>
</ul>
<p>Other</p>
<ul>
<li>JPEG XL image decode support</li>
<li>Improved Markdown rendering and table overflow handling</li>
<li>Panel card borders split out from general panel border setting (<code>shell.panel.borders</code> vs card-specific styling)</li>
</ul>
<h3>🐛 Notable Fixes</h3>
<ul>
<li>Notification filters apply to internal/plugin toasts (history still external-only)</li>
<li>Notification filter editor saves Content Regex when using Apply or toggling options</li>
<li>Polkit auth panel opens during fingerprint-only auth and sizes to fingerprint-only content</li>
<li>Control Center user-card wallpaper and scrim draw as one rounded shape, no more artifacts on the edge</li>
<li>Plugin shortcuts reload when reopening Control Center if the script changed while closed</li>
<li>Double/triple-click in text inputs selects the full word or line</li>
<li>Lockscreen compact layout reserves status row height; forecast days fit the weather budget; sysmon graphs keep updating on lockscreen widgets</li>
<li>Desktop media player relayouts when track title or artist changes</li>
<li>Bar capsule group hover pills and hit targets align with the outer capsule node</li>
<li>Bar keyboard layout label truncates correctly for multi-codepoint labels</li>
<li>CalDAV password retained during calendar account discovery</li>
<li>Clipboard selection data no longer corrupted after move operations</li>
<li>Theme template application preserves symlinks</li>
<li>Screenshot region overlay takes pointer input over the widgets editor</li>
<li>Settings window stays usable while dialog sheets are open; no longer closes when opening widget editors</li>
<li>Capsule groups stay configurable when a bar lane override is reset</li>
</ul>
]]></description>
</item>

<item>
	<title>Noctalia v5.0.0-beta.5 (Pre-release)</title>
	<link>https://noctalia.dev/changelogs#v5.0.0-beta.5</link>
	<guid>https://github.com/noctalia-dev/noctalia/releases/tag/v5.0.0-beta.5</guid>
	<pubDate>Sat, 25 Jul 2026 18:41:08 GMT</pubDate>
	<category>Release</category>
	<description><![CDATA[<h2>Noctalia v5.0.0-beta.5</h2>
<h3>✨ New Features</h3>
<p>Bar &amp; Widgets</p>
<ul>
<li>Per-widget custom gesture actions (clicks, scrolls, and related bindings) with defaults for built-in widgets; plugins can declare their own</li>
<li>Settings: foldable Actions group per widget for those bindings</li>
<li>Dead-zone input routes into the same gesture actions as the widget</li>
<li>Opt-in: one scroll action per wheel notch / flick for cycling verbs (volume, workspaces, and similar)</li>
</ul>
<p>Lockscreen</p>
<ul>
<li>Compact and Regular login box layouts</li>
</ul>
<p>Desktop Widgets</p>
<ul>
<li>Lasso select and group transforms in the desktop widgets editor</li>
</ul>
<p>Plugins &amp; Panels</p>
<ul>
<li>Install the newest plugin revision the host’s plugin API supports</li>
<li><code>capture_keys</code>, system stats / per-core CPU for plugins, and closures as UI tree callbacks</li>
<li>Persistent plugin panels outside the active-panel slot, plus <code>keyboard_focus</code> on panel entries</li>
</ul>
<p>Dock &amp; Wallpaper</p>
<ul>
<li>Dock: optional Wayland overlay layer</li>
<li>Wallpaper panel: sort by random (stable across refreshes)</li>
</ul>
<p>Calendar &amp; Screen Time</p>
<ul>
<li>Optional ISO week numbers on the calendar grid</li>
<li>Screen time: open hourly day detail from the multi-day chart</li>
</ul>
<p>IPC</p>
<ul>
<li>Workspace, keyboard layout, network, and directional power verbs</li>
<li>State-query commands marked unbindable so action pickers skip them</li>
</ul>
<h3>🐛 Notable Fixes</h3>
<ul>
<li>Taskbar: hide anonymous XWayland menu popups (no app id and no title); keep compositor focus / workspace matching reliable</li>
<li>Hyprland: stop workspace active/occupied/urgent flags from clearing on unchanged snapshots</li>
<li>Panels: honor <code>panel_anchor_bar</code> over the opening source bar; center panels when the focused output has no bar</li>
<li>Workspaces: fix hover-animation crash on widget teardown / bar reload</li>
<li>Dialogs: stop auto-dismissing popups on outside click</li>
<li>Launcher: faster open/search, honor locale in the calculator, default <code>/calc</code>, invalidate stale icon-cache misses</li>
<li>Theme CLI: apply <code>-c</code> custom colors before <code>-r</code> template render</li>
<li>Polkit: harden auth and keep chained prompts intact</li>
<li>Sysmon: skip GPU polling when nothing is showing GPU stats</li>
<li>Input: reset scroll detent carry after a gesture pause; one action per wheel notch for cycling verbs</li>
</ul>
<h3>🔧 Build</h3>
<ul>
<li>Packaging: document the project maintenance policy for packagers</li>
</ul>
]]></description>
</item>

<item>
	<title>Noctalia v5.0.0-beta.4 (Pre-release)</title>
	<link>https://noctalia.dev/changelogs#v5.0.0-beta.4</link>
	<guid>https://github.com/noctalia-dev/noctalia/releases/tag/v5.0.0-beta.4</guid>
	<pubDate>Thu, 23 Jul 2026 16:00:55 GMT</pubDate>
	<category>Release</category>
	<description><![CDATA[<h2>Noctalia v5.0.0-beta.4</h2>
<h3>✨ New Features</h3>
<p>Bar &amp; Widgets</p>
<ul>
<li>New Text bar widget</li>
<li>Taskbar: pinned apps without grouping, idle pinned opacity, workspace group content modes (icons / count / dots), middle-click to close windows</li>
<li>Battery: display content options (percent / time / rate) and a none display mode</li>
<li>Sysmon: extra disk stats, text/glyph order and unit visibility, none display type; GPU monitoring on by default</li>
<li>Media: artist-first display order setting, scroll wheel and side buttons for track skip</li>
<li>Network: connection state beside the VPN indicator; optional WAN IP in the network widget tooltip</li>
<li>Notification widget stays visible while its panel is open (with auto-hide)</li>
<li>Workspace urgent color, per-widget scroll enable, smart auto-hide, show-on-workspace-switch</li>
<li>Volume widget: effects-profile glyph overrides</li>
<li>Broader border and shadow options across supported elements</li>
</ul>
<p>Panels &amp; Launcher</p>
<ul>
<li>Global panel anchor bar for multi-bar setups</li>
<li>Optional list-item background in launcher and clipboard</li>
<li>Launcher auto-paste after copy activations; opt out of currency exchange fetching</li>
<li>Clipboard page up/down; encrypted clipboard history with configurable key sources</li>
<li>Session panel: toggle to show shortcuts</li>
<li>Window switcher dismisses on outside click</li>
<li>Polkit panel is no longer dismissed with outside-click</li>
</ul>
<p>Desktop &amp; OSD</p>
<ul>
<li>New Volume desktop widget</li>
<li>Hot corners: configurable activation delay</li>
<li>OSD master enable; keyboard backlight OSD; audio sink/source name in volume OSD</li>
<li>IPC for speaker and mic volume OSD</li>
</ul>
<p>Calendar &amp; Lock</p>
<ul>
<li>CalDAV visibility toggles, event date/time formatting, password-file credentials, secured credential storage</li>
<li>Password input glyph animation (V4-style eye candy)</li>
<li>Screenshot: show cursor option</li>
</ul>
<p>Plugins &amp; Store</p>
<ul>
<li>Plugin API 8: <code>dismiss_on_outside_click</code>, hover callbacks, interactive row/column nodes, declarative panel drag-and-drop, string map settings, <code>httpStream</code>, <code>allowInsecureTls</code></li>
<li>Plugin store: filter by source, keyboard navigation, Community badge, open plugin webpage</li>
</ul>
<p>Settings &amp; Security</p>
<ul>
<li>Encrypted persistence under a master key (secret store / libsecret)</li>
<li>Settings window sized to a golden rectangle of the output</li>
</ul>
<p>Theming</p>
<ul>
<li>Firefox theming via noctalia-pywalfox native messaging host</li>
</ul>
<h3>🐛 Notable Fixes</h3>
<ul>
<li>Panels attach to the first enabled bar when no anchor is set (multi-bar / disabled-bar cases)</li>
<li>Fixed <code>mode_changed</code> hook not firing</li>
<li>Settings: confirm individual override resets; overridden filter matches override badges</li>
<li>Screen corners stay above the bar after bar config changes</li>
<li>Taskbar: empty workspace scroll, KDE context menus, tooltips on title change, show windows without app id</li>
<li>Wallpaper: light/dark directories with <code>theme.mode=auto</code>, natural filename sort, favorite palette on auto rotation</li>
<li>Network: bridge/bond primary and slave link reporting</li>
<li>PipeWire: don’t override volumes set by other apps; spectrum silent-sample fix</li>
<li>Hyprland: focus launch monitor; workspace refresh after <code>change_id</code></li>
<li>Dock / bar hit targets, tooltips, and context-menu dismiss polish</li>
<li>Ctrl shortcuts under non-Latin layouts; desktop-entry escaped characters</li>
<li>Plugins: callback CPU budgets, detached commands without login shell, catalog git off the main thread</li>
<li>Lockscreen custom keyboard-layout labels; idle grace torn down before suspend</li>
<li>Swedish and Turkish language registration</li>
</ul>
<h3>🔧 Build</h3>
<ul>
<li>Packaging guide (<code>PACKAGING.md</code>) and distro/Repology notes</li>
<li>New: libsodium and libsecret dependencies</li>
<li>Native CPU optimizations opt-in; meson dependency-version regex fix</li>
</ul>
]]></description>
</item>

<item>
	<title>Noctalia v5.0.0-beta.3 (Pre-release)</title>
	<link>https://noctalia.dev/changelogs#v5.0.0-beta.3</link>
	<guid>https://github.com/noctalia-dev/noctalia/releases/tag/v5.0.0-beta.3</guid>
	<pubDate>Thu, 16 Jul 2026 13:35:48 GMT</pubDate>
	<category>Release</category>
	<description><![CDATA[<h2>Release v5.0.0-beta.3</h2>
<h3>✨ New Features</h3>
<p>Bar &amp; Widgets</p>
<ul>
<li>Smart auto-hide for the bar (show on empty workspace, hide when windows are open)</li>
<li>Per-widget interactive toggle in widget settings</li>
<li>Workspace widget focus-hint style; workspace appear/disappear animations</li>
<li>Taskbar: minimal style option for workspace labels</li>
<li>Network widget: optional VPN name label when a VPN is connected</li>
<li>Clock widgets (bar and desktop): timezone setting</li>
<li>Custom images on bar widgets expand <code>~</code> / user paths</li>
</ul>
<p>Dock</p>
<ul>
<li>Smart auto-hide option (same empty-workspace behavior as the bar)</li>
<li>Drag-to-reorder pinned icons</li>
<li>Border color and width settings (same model as the bar)</li>
<li>Focus newly launched apps from the dock more reliably</li>
</ul>
<p>Launcher</p>
<ul>
<li>Configurable per-provider prefixes and global-search opt-in</li>
<li>Provider presence/status validation; prefix controls in Settings</li>
<li>Freeform dmenu query arguments; plugin <code>setQuery</code> is prefix-relative</li>
</ul>
<p>Plugins</p>
<ul>
<li>Plugin store: 24 plugins are now available</li>
<li>Persistent per-plugin storage via <code>noctalia.pluginDataDir()</code></li>
<li>Lifecycle <code>onExit</code>; scroll forwarded to Luau as <code>onScroll</code></li>
<li>Color picker dialog API; <code>noctalia.appIconPath</code> icon resolution</li>
<li>Bar widgets expose <code>barWidget.outputName</code></li>
<li>Plugin store: clearer update UI, source badge colors, header links to noctalia.dev / GitHub</li>
<li>Setting labels use <code>label_key</code> only (breaking for plugins still using plain <code>label</code>)</li>
<li>Declarative UI: button tooltips and a <code>controlSize</code> height tier</li>
</ul>
<p>Theming &amp; Appearance</p>
<ul>
<li>Global button border toggle</li>
<li>Pure black dark mode for OLED panels</li>
<li>Custom theme colors: <code>color_dark</code> / <code>color_light</code></li>
<li>Day/night schedule: custom times for theme switching</li>
<li>Mango: <code>group_bar_decorate</code> color tokens</li>
</ul>
<p>Settings &amp; Sessions</p>
<ul>
<li>Accessibility section: <code>ui_scale</code> and <code>high_contrast</code> moved under <code>[accessibility]</code></li>
<li>Session panel: grid layout option; power settings consolidated</li>
<li>Settings migration helper; stricter config validation before save / on reload</li>
<li>Lockscreen login box: center password text toggle</li>
<li>Wallpaper: option to disable all transition effects</li>
<li>Setup wizard sets a default wallpaper</li>
</ul>
<p>Notifications / OSD</p>
<ul>
<li>Border toggles for notification toasts and OSD popups (on by default)</li>
</ul>
<p>System &amp; Compositor</p>
<ul>
<li>Sysmon: Support for GPU usage and VRAM on Intel i915/xe</li>
<li>Explicit backlight device override</li>
<li>Nix package: git on the runtime path</li>
</ul>
<h3>🐛 Notable Fixes</h3>
<ul>
<li>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</li>
<li>Taskbar: grouped capsule sizing, workspace badges, clipping/overlap, title alignment, mute/minimal badge colors, strip padding</li>
<li>Context menus: scroll long menus and navigate with keybinds</li>
<li>Polkit: panel height follows authentication message content</li>
<li>Bluetooth: hide battery % when disconnected; avoid full list rebuild on RSSI updates</li>
<li>Network: refresh Wi‑Fi signal in place; rfkill applies to all matching devices</li>
<li>Audio/PipeWire: show all input devices; treat displayed zero volume as muted</li>
<li>Lockscreen: blur backgrounds at output resolution; redraw after resume</li>
<li>Theme: Catppuccin Latte light terminal palette; single-mode custom colors / blend source; <code>colors_changed</code> hooks wait for templates</li>
<li>Night light: smoother temperature ramps</li>
<li>Notifications: top-aligned toast icons; grace timer when a toast finishes; error accent on persistent critical toasts</li>
<li>Calendar: skip unselected Google calendars</li>
<li>Launcher: don’t record usage when sort-by-usage is off</li>
<li>Control center: home clock/weather card height; card borders no longer cut off</li>
<li>Settings: plugin source editor teardown; linked settings in page reset; search focus UAF; floating panel alignment; capsule radius visibility; custom schedule times before activation</li>
<li>Config: path expansion restored; plugin settings exported; default plugin sources seeded; accessibility / hot_corners / widget enabled validation; drop undocumented <code>[notifications]</code> alias</li>
<li>Plugins: stale store thumbnails; click anchor for attached panels; description for label vs <code>label_key</code> warnings</li>
<li>Input: password field info-leak hardening; touchpad scroll quantized to wheel steps; hover resync after dialogs</li>
<li>Clipboard hover jitter; media title marquee stops while hidden</li>
<li>Render: recover EGL share group after GPU reset; skip unchanged animation frames; cache redundant GLES state</li>
<li>Workspaces: delayed empty-workspace color transition; Mango overview active workspace; Niri switcher prefers compositor focus</li>
<li>Bar: <code>show_on_workspace_switch</code> initial reveal; tray hover respects capsule settings</li>
<li>Session: primary keyboard selection in the session panel</li>
<li>Hot corners: only create surfaces for configured corners</li>
<li>App: defer surface redraws on resume/unlock; toast fallback render to break compositor stalls</li>
</ul>
]]></description>
</item>

<item>
	<title>Noctalia Beta Update</title>
	<link>https://noctalia.dev/blog/noctalia-beta-update</link>
	<guid>https://noctalia.dev/blog/noctalia-beta-update</guid>
	<pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate>
	<category>Blog</category>
	<description>Latest updates and development progress for the Noctalia v5 beta.</description>
</item>

<item>
	<title>Noctalia v5.0.0-beta2 (Pre-release)</title>
	<link>https://noctalia.dev/changelogs#v5.0.0-beta2</link>
	<guid>https://github.com/noctalia-dev/noctalia/releases/tag/v5.0.0-beta2</guid>
	<pubDate>Thu, 09 Jul 2026 13:23:17 GMT</pubDate>
	<category>Release</category>
	<description><![CDATA[<h2>Noctalia v5.0.0-beta2</h2>
<h3>✨ New Features</h3>
<p>Bar &amp; Widgets</p>
<ul>
<li>Hover highlight (foreground-tinted state layer) for bar widgets, capsule groups, taskbar, tray, and workspace widget with per-widget opt-out</li>
<li>Concave/inverted corners for bar and dock, toggled via setting (replaces negative-radius hack)</li>
<li>Eye toggle to hide/show individual bar widgets and capsule groups</li>
<li>Custom images on glyph widgets</li>
<li>Media widget: option to hide artist name</li>
<li>Tray: drawer_item_size configuration</li>
</ul>
<p>Plugins</p>
<ul>
<li>Any plugin can now load custom fonts</li>
<li>Declarative bar-widget UI via barWidget.render, inheriting bar font/scale</li>
<li>onConfigChanged service callback for in-place settings reload</li>
<li>Input focus support, multiline input, panel &quot;fill&quot; sizing, and new script bindings</li>
<li>Role color alpha suffix support (role/alpha); redesigned plugin store home/detail pages; collapsed store categories by default</li>
</ul>
<p>Network &amp; Connectivity</p>
<ul>
<li>IWD support for WiFi</li>
<li>WAN/WAN-IP display (opt-in for privacy)</li>
<li>Bluetooth: actively reconnect trusted devices on power-on and startup</li>
</ul>
<p>Settings &amp; Sessions</p>
<ul>
<li>Regex content filtering for notifications + filter duration override</li>
<li>Detach power and custom session commands</li>
<li>Launcher settings extracted into their own section; OnlyShowIn/NotShowIn desktop-entry support</li>
<li>Screen-sharing filter regex (privacy)</li>
</ul>
<p>Other</p>
<ul>
<li>IPC: wallpaper next/previous, bar-reserve-toggle, notification-show payloads with two-arg CLI body</li>
<li>Screenshot: expose generated path to pipe commands</li>
<li>Calendar: toggle the events panel</li>
<li>Runtime log-level control</li>
</ul>
<h3>🐛 Notable Fixes</h3>
<ul>
<li>Calendar: client-side CalDAV recurrence expansion</li>
<li>Wallpaper: per-display KDE/Plasma sync, crash-loop prevention on invalid paths, precise IPC outcomes</li>
<li>Lockscreen: hide idle grace overlay on unlock, dim overlay through lock handoff, hideable login boxes</li>
<li>Workspaces: jitter fixes, Hyprland persistent-workspace restore on reload, Mango tag mapping</li>
<li>Audio/PipeWire: bar volume/OSD mute sync, simplified relative volume steps</li>
<li>Brightness: sysfs fallback when logind D-Bus is unavailable</li>
<li>Panel/tooltip focus, scaling, and placement fixes; desktop cross-monitor widget drag; hot-corners reload guard</li>
</ul>
<h3>🔧 Build</h3>
<ul>
<li>Require system md4c/json/toml++/stb</li>
<li>Nix devshell updates for new dependencies</li>
</ul>
]]></description>
</item>

<item>
	<title>Noctalia v5.0.0-beta1 (Pre-release)</title>
	<link>https://noctalia.dev/changelogs#v5.0.0-beta1</link>
	<guid>https://github.com/noctalia-dev/noctalia/releases/tag/v5.0.0-beta1</guid>
	<pubDate>Thu, 02 Jul 2026 19:02:00 GMT</pubDate>
	<category>Release</category>
	<description><![CDATA[<h2>Noctalia v5.0.0-beta1</h2>
]]></description>
</item>

<item>
	<title>Announcing Noctalia v5</title>
	<link>https://noctalia.dev/blog/announcing-noctalia-v5</link>
	<guid>https://noctalia.dev/blog/announcing-noctalia-v5</guid>
	<pubDate>Fri, 24 Apr 2026 00:00:00 GMT</pubDate>
	<category>Blog</category>
	<description>Rewritten for total control and peak performance.</description>
</item>
</channel>
</rss>