Skip to content

v5.0.0-beta2

Latest

Choose a tag to compare

@github-actions github-actions released this 09 Jul 13:23
v5.0.0-beta2

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

Changes since v5.0.0-beta1

  • revert(widgets): back out widget-group drawer feature for rework in a branch (32bcfb9c9) by Lemmy
  • fix(widgets): if tray is in drawer widget group, ignore tray drawer setting (a3b00f660) by Ly-sec
  • settings(i18n): use dash-case keys for group drawer fields (4de5d07c4) by Ly-sec
  • fix(wallpaper-panel): reset grid scroll when entering subfolders (66a817556) by Ly-sec
  • feat(widgets): add option to turn widget groups into drawers (84b3b3700) by Ly-sec
  • feat(settings): add regex content filtering to notifications (5cd1d1dc9) by Ly-sec
  • Merge branch 'main' of https://github.com/noctalia-dev/noctalia (e97e57721) by Ly-sec
  • feat(settings): add notification filter duration override (319e452ce) by Ly-sec
  • Merge pull request #3334 from linusammon/main (4c62feac1) by Lysec
  • chore(nix): pin std' version to nixpkgs #491159 (e09a9dd34) by Linus Ammon
  • fix(workspaces): instantly adjust container width and clip transitions (c2aac465c) by Ly-sec
  • fix(nix): update build inputs and dev shell for new deps (78f2beeca) by Ly-sec
  • settings: change defaults to showcase the inverted corners on bar and dock (af97d0dfd) by Lemmy
  • chore(i18n): update (4ea4acbac) by Lemmy
  • chore(readme): Mention more runtime requirements (#3328) (571001097) by Carl George
  • chore: formatting (463d1e689) by Lemmy
  • fix(lockscreen): don't size login box against unconfigured outputs (aaa454db0) by Lemmy
  • fix(settings): preserve scroll position when committing an Input with Enter (dea1d264d) by Lemmy
  • refactor(build): Require system md4c, json, toml++, and stb (#3311) (b7094a1e1) by Carl George
  • feat(plugins): let any plugin load custom fonts, decouple baseline (5c133d18d) by Lemmy
  • feat(log): add runtime log level control. Fix #3312 (6e1db5743) by Lemmy
  • fix(config): secure state store permissions. Fix #3325 (ee18934c8) by Lemmy
  • fix(bluetooth): actively reconnect trusted devices on power-on and startup (7357c5bcc) by Lemmy
  • chore(i18n): update (86d58bf05) by Lemmy
  • fix(bar): account for concave flare in attached-panel shadow cutout (8cc1e473e) by Lemmy
  • fix(panel): probe focused output for IPC opens on focus-less compositors (30ec6ef7f) by Lemmy
  • fix(tooltip): publish retarget geometry atomically with the new buffer (0b91292d8) by Lemmy
  • fix(build): use _ensure-configured for lint tasks and add python3 to devshell (14ec268fc) by Ly-sec
  • Merge branch 'main' of https://github.com/noctalia-dev/noctalia (8d5c09b39) by Ly-sec
  • fix(shell): remove redundant float cast in tray drawer panel (b916c52e0) by Ly-sec
  • feat(bar): concave edge corners (#3314) (930e68ff4) by tibssy
  • feat(bar): add hover effect to taskbar widget (c0e0afc24) by Ly-sec
  • feat(bar): add hover effect to tray widget (e9d8df6a0) by Ly-sec
  • feat(bar): add hover effect to workspace widget (e358ce39b) by Ly-sec
  • Merge pull request #3317 from CLEMENTINATOR/media-widget-hide-artist (f63a44a7c) by Lysec
  • feat(media_widget): option to hide artist name (d8742c04f) by Clement Bouvet
  • fix(compositors): pass Mango TagInfo to workspace mapper (bc18cbd84) by Ly-sec
  • fix(compositors): convert mango tags loop to range-based iteration (b87c8acf9) by Ly-sec
  • fix(lockscreen): hide idle grace overlay on unlock (54c8cd49f) by Ly-sec
  • fix(workspaces): reserve target width during pill transitions (e53f94843) by Ly-sec
  • feat(settings): collapse plugin store categories by default (f319fba96) by Ly-sec
  • fix(app): repaint after resume and unlock (b9b4bc340) by Ly-sec
  • fix: clang-tidy (099312d33) by Lemmy
  • fix(wallpaper): report precise outcome for wallpaper switch IPC commands (1e9ae79b0) by Lemmy
  • feat(wallpaper-next-prev): add next and previous to ipc msg (#3300) (67bec8d8f) by Caleb Terry
  • chore: formating (3bb2b5865) by Lemmy
  • fix(wallpaper): prevent crash loop on directory or invalid paths (#3310) (013ce8b89) by calafite
  • Remove AerynOS installation instructions (cefcd3322) by Lemmy
  • docs: minor changes in openSUSE deps installation (#3307) (b51fa87dc) by Lê Khang
  • Merge pull request #3293 from TotalyEnglizLitrate/fix/launcher-cell-height (b57faefe7) by Lysec
  • fix(taskbar): match Hyprland workspace groups by name/id/key (ce325f167) by Ly-sec
  • fix(tooltip): scale tooltip content with shell.uiScale (133154837) by Ly-sec
  • feat(ipc): add notification-show payloads and two-arg CLI body support (93293cf78) by Ly-sec
  • fix(desktop): support cross-monitor widget drag and paste in editor (cfe81efd3) by Ly-sec
  • fix(dock): decode zoomed icons at exact rendered size (59e603bdd) by Ly-sec
  • fix(taskbar): decode icons at exact render size (1cdb39027) by Ly-sec
  • chore(i18n): update (831c513f1) by Lemmy
  • fix(plugin-ui): compact button chrome and scaled size defaults in bar widgets (65b18881a) by Lemmy
  • fix(plugin-ui): inherit bar font and widget scale in declarative bar widgets (0fefda5cf) by Lemmy
  • ui(label): ceil box widths and warn on measure/arrange line-count divergence (b2214cbc0) by Lemmy
  • fix(label): keep arrange-pass metrics on the measure-pass wrap budget (a5727de5b) by Lemmy
  • feat(plugins): add barWidget.render for declarative bar widget UI (387acd008) by Lemmy
  • fix(plugins): notify user when enabling a plugin fails (ee80e4479) by Lemmy
  • feat(plugins): add onConfigChanged service callback for in-place settings reload (ac754afed) by Lemmy
  • feat(plugin-ui): support alpha suffix on role colors (role/alpha) (7ac5e62ff) by Lemmy
  • refactor(log): use categorized kLog for dmenu warnings (9a3cd6325) by Lemmy
  • refactor(process): log fd-limit via categorized Logger (569f2c786) by Lemmy
  • fix(emoji): fix two spellings error in the db (7a30ffa42) by Lemmy
  • fix(launcher): use grid cell height for list result rows (5fed6a4ba) by Narendra S
  • fix(calendar): rename shadowing parseDateTime bindings in ical parser (940261a27) by Lemmy
  • chore(i18n): update (93c5f1eca) by Lemmy
  • fix(calendar): preserve recurring event wall time across DST (#3290) (0ed422549) by Vladyslav Halatskyi
  • refactor(settings): extract launcher settings into their own section (ce82f1b68) by Lemmy
  • fix(audio): keep bar volume widget and OSD mute icon in sync. Fix #3168 (562196a46) by Lemmy
  • feat(session): detach power and custom session commands (c7433277a) by Ly-sec
  • fix(lockscreen): make login box border follow background opacity (c876c2b84) by Ly-sec
  • fix(sysmon): omit units in vertical bar labels (3feee9091) by Ly-sec
  • fix(sysmon): fallback graph mode to gauge on vertical bars (a264e620b) by Ly-sec
  • fix(idle): keep dim overlay active through lock handoff (a849ca807) by Ly-sec
  • fix(polkit): prevent auth action row overflow (dcdfcce32) by Ly-sec
  • fix(theme): don't rewrite symlinked hyprland.lua on every apply (b6fd0df7a) by Lemmy
  • fix(calendar): generalize daily COUNT skip, DST-tolerant EXDATE matching (d8d8ed597) by Lemmy
  • fix(calendar): make recurrence tests zone-hermetic (55a8dcf94) by Lemmy
  • chore: formatting (94c353ced) by Lemmy
  • fix(calendar): expand CalDAV recurring events client-side when server ignores <C:expand> (#3259) (c90b85d1d) by Vladyslav Halatskyi
  • refactor(pw): cleanup constexpr, update comments and general house keeping (eda58dbb4) by Lemmy
  • fix(pw): simplify relative volume adjustment to use flat steps (#3279) (d79cddd05) by Narendra S
  • feat(bar): let sub-item widgets opt out of the hover highlight (workspace, taskbar, tray) (636ef8d1e) by Lemmy
  • build: reorder meson options (ef2987cdd) by Lemmy
  • chore(readme): clarify stb path option and list nlohmann/json as system-switchable (aac16390b) by Lemmy
  • feat(build): Add system_stb option (#3275) (272bc873d) by Nick Hastings
  • style(includes): use angle brackets for nlohmann/json.hpp consistently (c2771881a) by Lemmy
  • feat(build): Add system_nlohmann option (#3272) (080c6164f) by Nick Hastings
  • chore(i18n): update (6f1abe764) by Lemmy
  • fix(dock): gate concave toggle on margin_edge, integral insets, all-convex blur fast path (a0e6e8929) by Lemmy
  • Feat/dock concave side corners (#3209) (94af34475) by tibssy
  • fix(settings): 'open near click' gated behind 'attached' placement (b8a068c64) by Lemmy
  • refactor(settings): replace string-based visibility conditions with typed Config predicates (b53cc6752) by Lemmy
  • fix(shell): potential fix for greeter failing to load AccountsService avatar (e56f6e823) by Ly-sec
  • refactor(lock-surface): replace manual coordinate and dimension calculation with declarative layout (#3281) (87db64f1a) by enklht
  • chore(nix): add libclang to devshell for run-clang-tidy (#3280) (f62512f79) by Narendra S
  • Merge branch 'main' of https://github.com/noctalia-dev/noctalia (d1e02bdf0) by Ly-sec
  • feat(ipc): add bar-reserve-toggle IPC command (72011595e) by Ly-sec
  • chore(i18n): update (8894d1995) by Lemmy
  • Merge branch 'main' of github.com:noctalia-dev/noctalia-shell (2954b4c04) by Lemmy
  • feat(bar): highlight hovered widgets with a foreground-tinted state layer (152bf47b9) by Lemmy
  • Merge branch 'main' of https://github.com/noctalia-dev/noctalia (10aa810b3) by Ly-sec
  • fix(wallpaper): use DBus evaluateScript for per-display KDE wallpaper sync (2c3f5e6b0) by Ly-sec
  • fix(wallpaper): pass --screen to plasma-apply-wallpaperimage for per-display sync (291eb645d) by Ly-sec
  • fix(settings): use main noctalia app id. Fixes #3282 (0188d77d5) by Lemmy
  • fix(wallpaper): sync wallpaper to Plasma on apply (89e713e65) by Ly-sec
  • fix(brightness): fall back to sysfs write when logind D-Bus is unavailable (2be5e68b2) by Ly-sec
  • Merge pull request #3253 from turtlestarship/fix-toplevel-output (802441b46) by Lysec
  • feat(bar): invert corners via a toggle instead of negative radius (10b200708) by Lemmy
  • feat(screenshot): expose generated path to pipe commands (79dcc65ee) by Lemmy
  • chore(flake): update flake.lock (8e3da5ea7) by ItsLemmy
  • chore(i18n): update (6e9abc899) by Lemmy
  • feat(security): WAN IP resolve is now opt-in, cleaned up/reordered settings (a7e74f37e) by Lemmy
  • test(config): update capsule_group golden for enabled field (889d9e975) by Lemmy
  • fix(iwd): use sdbus::Struct for GetOrderedNetworks to fix empty wifi list (81f2c83d8) by Lemmy
  • feat(network): show wan IP (4d76b6d8e) by Lemmy
  • Merge branch 'main' of github.com:noctalia-dev/noctalia-shell (2a0bddc13) by Lemmy
  • chore(formatting) (c5905b5eb) by Lemmy
  • Merge branch 'main' of https://github.com/noctalia-dev/noctalia (8367b6599) by Ly-sec
  • fix(network): separate VPN from physical link state, async NM calls, safe proxy rebinds (18e36ede3) by Lemmy
  • fix(panel): focus grab activation on detached panels (ed7f3ea55) by Ly-sec
  • shell(tooltip): anchor tooltip popup to capsule shell instead of widget content bounds (741a43539) by Ly-sec
  • fix(build) (21c6baacf) by Lemmy
  • chore(i18n): update (00f81be6e) by Lemmy
  • Added Galician as a language (#3268) (8046df9fb) by Xurxo Martínez Ferreira
  • chore: clang-format (161577a7e) by Lemmy
  • Merge branch 'main' of https://github.com/noctalia-dev/noctalia (dd55eda00) by Ly-sec
  • shell(settings): add eye toggle to hide/show bar widgets and capsule groups (0e6cc5063) by Ly-sec
  • fix(luau): preserve file_clock→system_clock epoch offset in stat mtime (ba882ba6a) by Lemmy
  • Merge branch 'main' of https://github.com/noctalia-dev/noctalia (6813caf40) by Ly-sec
  • scripting(luau): replace clock_cast with duration_cast for libc++ compat (c0c4ab59d) by Ly-sec
  • ui(settings): confirm before deleting a plugin (429271266) by Lemmy
  • noctalia.scm: Add wireplumber input. (#3266) (8e9951dde) by Hilton Chain
  • fix(pw): rework accel. (276deb33b) by Lemmy
  • ui(launcher,clipboard): unify list row text stack and semibold titles, metrics-derived row heights (4f9e8343c) by Lemmy
  • fix(panel): allow attached panel placement with multiple bars on same edge (737aa65a9) by Ly-sec
  • fix(hyprland): raise floating windows on taskbar focus via alterzorder (f4a39b9ec) by Ly-sec
  • Revert "fix(dialog): prevent premature popup dismissal on strict Wayland compositors" (e1e904c55) by Ly-sec
  • fix(dialog): prevent premature popup dismissal on strict Wayland compositors (4aa9f436d) by Ly-sec
  • feat(desktop-widgets): give each widget layer surface a unique namespace. Fix #3223 (ee0cede5d) by Lemmy
  • refactor(desktop-entry): drop dead hidden/NoDisplay lookup options (0d2c346e3) by Lemmy
  • refactor(desktop-entry): compute OnlyShowIn/NotShowIn visibility at parse time (707e049c0) by Lemmy
  • feat(launcher): add support for OnlyShowIn and NotShowIn keys (#3236) (240c7fe57) by Electronic Mango
  • chore(i18n): update (4a1d0ec36) by Lemmy
  • privacy: add screen sharing filter regex (#3237) (b4268a2e2) by Lauri Niskanen
  • refactor(app): single source of truth for output surface creation order. Fix #3244 (0b3eab82c) by Lemmy
  • feat(bar): support custom images on glyph widgets (ab0fe3aaf) by Lemmy
  • feat(plugin): better looking store home and detail page (18b50824c) by Lemmy
  • feat(settings): default advanced toggle to on (2abf87584) by Ly-sec
  • chore(i18n): update (e6dd48e48) by Lemmy
  • feat(tray): add drawer_item_size configuration (a0d8efc30) by Ly-sec
  • Revert "feat(privacy): add V4L2 camera usage detection" (6b39dc817) by Ly-sec
  • feat(privacy): add V4L2 camera usage detection (9cef38764) by Ly-sec
  • Merge branch 'main' of https://github.com/noctalia-dev/noctalia (b8ccd2c00) by Ly-sec
  • feat(lockscreen): allow hiding login boxes (except for last one) (75a6b4e2e) by Ly-sec
  • feat(wifi): Add IWD support (#3227) (30e0f7aa8) by Rain Xelelo
  • Merge branch 'calendar-events-toggle' (8332ab874) by Lemmy
  • fix(calendar): null events-card toggle button on panel close (b8acf0e3b) by Lemmy
  • Merge pull request #3252 from bgmulinari/fix/hot-corners-early-reload-guard (9675ae1ba) by Lysec
  • Merge branch 'main' of https://github.com/noctalia-dev/noctalia (7ea12674a) by Ly-sec
  • fix(hyprland): restore persistent workspaces on reload (8dd4ddf8f) by Ly-sec
  • Merge pull request #3247 from spiros132/patch-2 (05d05e4fd) by Lemmy
  • chore: clang-tidy fixes (82c649eb6) by Lemmy
  • fix(workspaces): fix jitter when hide_when_empty toggles workspace visibility (baf0b3aa7) by Ly-sec
  • Merge pull request #3255 from CLEMENTINATOR/fix-lockscreen-status-line-clip (833a09d6f) by Lysec
  • fix(lock-surface): do not clip the status line (5b9971614) by Clement Bouvet
  • fix: prevent null toplevel output (da1fe3563) by turtlestarship
  • fix(shell): guard hot corners reload before init (0a6a949d7) by Bruno Mulinari
  • feat(plugins): added support for Input focus (6e7aa3b4d) by Lemmy
  • feat(plugins): multiline input, panel "fill" sizing, and new script bindings (2f46e2d45) by Lemmy
  • Change Noctalia v5 status to Beta (1bee7f970) by Lemmy
  • chore(ci): update-aur-package (5fb7e57ae) by Lemmy
  • feat(calendar): allow toggling the events panel (263501f49) by Electronic Mango
  • Changed punctuation theme in helix.toml (706ef8f13) by Spyridon Siarapis