Noctalia 5.4.1
✨ New Features
Bar & Widgets
- Optional symbolic application icons in the taskbar with
prefer_symbolic_icons, tinted to match the widget and falling back to regular icons when unavailable - Dock compositor blur through
compositor_blur, including per-monitor overrides on compositors supporting background effects - Tabular digits in bar and desktop clocks to keep digits from shifting as the time changes, where supported by the selected font
Screenshots
- Screenshot annotation backdrops with gradient presets, padding, rounded corners, and shadows, previewed live and included in copied or saved images
- Stroke popover combining annotation colors and thickness controls
Calendar & Settings
- Per-account calendar sync status in Settings, with failure explanations and Edit, Retry, or Reconnect actions
- Optional event locations in Control Center and desktop calendar lists with
show_events_location, including clickable web links - Idle status in Settings lists inhibiting applications and their reasons, with indicators for caffeine and external inhibitors
Notifications / OSD
- Delete the topmost notification in Control Center with the configured
deletekeybind - Disable per-player media-volume OSD popups independently of track-change popups with
osd.kinds.media_volume
Plugins
- Reference lines on
ui.progressthroughmarkerandmarkerColor
Umbriel
- Umbriel integration now sends typed
actionIPC requests for window actions and session exit; use an Umbriel build supporting this protocol
Other
- Mouse-wheel adjustment for sliders and range sliders, including plugin sliders but excluding media playback seeking; gestures started elsewhere keep their original scroll target
- Optional pause of wallpaper rotation while a window is fullscreen with
wallpaper.automation.pause_on_fullscreen - Romanian interface language
🐛 Notable Fixes
- Lockscreen: reject forged logind unlock and fingerprint-match signals from other D-Bus senders, preventing authentication bypass
- Idle: read inhibition state directly from logind instead of trusting signal payloads, preventing forged signals from suppressing automatic locking
- Notifications: encrypt saved history and image previews, automatically migrate existing plaintext history, and preserve saved data when storage keys are unavailable
- Wallpaper: prevent command and script injection through KDE wallpaper filenames, including paths containing quotes or shell substitutions
- Idle: resume idle tracking after applications release screensaver inhibition, preserve waiting timers across locking, and avoid waking an already blanked display when locking or releasing an inhibitor
- Calendar: honor calendar selections changed during a refresh, promptly run requested follow-up syncs, and retain cached events for individual CalDAV calendars that fail to refresh
- Calendar: avoid duplicating server-expanded recurring CalDAV events that retain recurrence rules
- Tray: keep icons registered when an external watcher is slow at login, without blocking the shell
- Tray: ignore empty item-property replies that could create blank duplicate icons, and correctly lay out drawer icons after icon-theme scans
- Tray: keep submenus beside their parent when the compositor flips them at a screen edge
- Launcher: restore pinned-first ordering in the Full layout's All view
- Launcher: expand search when the session button is hidden, balance toolbar padding at fractional scales, and fit emoji badges within result rows
- Bluetooth: keep discovered devices from reshuffling under the pointer and preserve the scan spinner during list updates
- Bluetooth: connection notifications now default to disabled; enable
bluetooth.connection_notificationsto receive them - Network: successful wpa_supplicant connections no longer appear to fail when its configuration file is read-only, and newly authenticated networks no longer repeatedly prompt for passwords
- Notifications: notifications withdrawn by their sender are marked as read
- Dock: prevent smart-hidden docks from briefly flashing during startup or reload
- Window switcher: enable previews on unrecognized compositors when the required protocols and an unambiguous window match are available
- Media: playback progress follows the player's playback rate rather than assuming normal speed
- Audio: system-sound playback runs independently of the shell UI loop
- Bar: keep system-monitor readings updating in gauge and text modes as well as graphs
- Active window: sharper icons on scaled displays and a default
icon_sizeof 16 to match other bar icons - Battery: use appropriate icons for audio devices and gamepads reported by UPower
- Text input: align multiline right-to-left text with its caret and selection, and anchor right-to-left screenshot annotations at their start edge
- Settings: correctly display font family names containing escaped punctuation
- Interface: prevent newly opened buttons from flashing through default gray colors and trim Hyprland build metadata from the Control Center version line
🔧 Build
- Optional
-Dsystem_libraries=truebuild mode for system-provided Wuffs, Luau, fzy, and Material Color Utilities instead of vendored copies - Installation instructions for Void Linux, Solus, and Alpine Edge, plus a corrected Niri shortcut example