Name: nada64 Version: 1.6.9 Release: 1%{?dist} Summary: Self-hosted system monitor dashboard for a secondary display License: MIT URL: https://nada64.com Source0: https://slop.tools/den-fi/nada64-dashboard/archive/v%{version}.tar.gz#/nada64-dashboard-%{version}.tar.gz BuildArch: noarch BuildRequires: python3 BuildRequires: systemd-rpm-macros Requires: python3 Recommends: playerctl Recommends: pciutils Recommends: lm_sensors %description NADA64 serves a live AIDA64-style dashboard (gauges, time-series graphs, btop-style process list, now-playing with touch playback controls) as a local web page you open fullscreen in a browser - built for wide secondary panels like the Corsair Xeneon Edge, with an automatic portrait layout. Single stdlib-only Python script. AMD, Intel, and NVIDIA supported. Start it: systemctl --user enable --now nada64 Then open: http://localhost:8770 Pick a theme: systemctl --user edit nada64 (add: [Service] / Environment=NADA64_THEME=cyan) CPU package power: run /usr/share/nada64/enable-cpu-power.sh once NVMe drive health: run /usr/share/nada64/enable-smart.sh once (Drives widget) (RAPL is root-only by default on recent kernels) %prep %autosetup -n nada64-dashboard %build # nothing to build - single stdlib-only script %install install -Dpm0755 nada64_linux.py %{buildroot}%{_bindir}/nada64 sed -i '1s|.*|#!/usr/bin/python3|' %{buildroot}%{_bindir}/nada64 install -Dpm0755 enable-cpu-power.sh %{buildroot}%{_datadir}/nada64/enable-cpu-power.sh install -Dpm0755 enable-smart.sh %{buildroot}%{_datadir}/nada64/enable-smart.sh install -Dpm0644 packaging/nada64.svg %{buildroot}%{_datadir}/icons/hicolor/scalable/apps/nada64.svg install -d %{buildroot}%{_userunitdir} cat > %{buildroot}%{_userunitdir}/nada64.service <<'EOF' [Unit] Description=NADA64 Dashboard After=network-online.target [Service] ExecStart=%{_bindir}/nada64 Restart=on-failure RestartSec=3 [Install] WantedBy=default.target EOF %check %{buildroot}%{_bindir}/nada64 --help >/dev/null %post %systemd_user_post nada64.service %preun %systemd_user_preun nada64.service %files %{_datadir}/icons/hicolor/scalable/apps/nada64.svg %license LICENSE %doc README.md %{_bindir}/nada64 %{_userunitdir}/nada64.service %dir %{_datadir}/nada64 %{_datadir}/nada64/enable-cpu-power.sh %{_datadir}/nada64/enable-smart.sh %changelog * Sun Aug 09 2026 den-fi - 1.6.9-1 - Now Playing: track progress bar (playerctl position/mpris:length, unit-sniffed; hidden when a player reports no position). - Session Peaks header shows session length (minutes, H/M past an hour; text mutates once a minute so the render skip keeps it free). - nut-setup enables nut.target and the driver instance: UPS monitoring survives reboots without re-running the script (field: togami, Onyx). - Wake-on-LAN: fleet-macs.json values may be a list of MACs (dual-NIC clients); one magic packet per address. - Now-playing equalizer exempted from widget mode's animation freeze (exact original choreography restored). * Thu Aug 06 2026 den-fi - 1.6.8-1 - Accent coherence: theme changes now recolor every rendered surface immediately (redraw-skip signatures busted; baked SVG stroke/fill retinted by exact match on the outgoing accent; cached spectrum gradient rebuilt; distro-logo tint filter recomputed). - Full is the default power mode (measured cost vs Balanced negligible post-optimization); explicit user choices preserved. - Profiles switcher is a labeled chip (P, expanding to PROFILES on hover/focus) with explanatory tooltip; packet-aquarium hover legend repositioned clear of the fish count. - Plasmoid 1.0.8: viewport nudge after monitor sleep/wake -- widgets no longer stick rendered at a transient tiny geometry. * Wed Aug 05 2026 den-fi - 1.6.7-1 - New-user refinements: redesigned fresh-install layout ("New NADA Stock"); the built-in Gaming stock profile is now the field-proven arrangement (FPS + latency centered, kernel ticker on the rail). - Profile switching prompts before replacing the current layout; profiles button and name field carry explanatory tooltips. - FPS panel reports a missing MangoHud install (with wiki pointer) instead of waiting indefinitely; server ships fps_ready capability. - Fix: visualizer showed grayed/unremovable in the widget picker while running (audio capability was never serialized to /stats). * Tue Aug 04 2026 den-fi - 1.6.6-1 - Power modes (Full / Balanced / Eco) beside the zoom control: animation arm policy, poll floor, and visualizer fps cap per mode; persisted per machine; Full opts out of the battery slowdown, Eco applies it always. - Watchful rest: frozen pets hold genuine alerts (pool degradation, low battery) in a clean static alert stance and sleep only when all is well; movement overrides can no longer produce mid-stride or mixed-pose freezes. - FPS widget: 60px headline, time-in-game from MangoHud's elapsed column; new packaging/enable-fps.sh one-shot setup (installs MangoHud, creates the log folder, writes the config stanza for native and Flatpak Steam; idempotent, respects existing output_folder). - Visualizer rests as dim half-height bars instead of a blank panel; kernel ticker exempted from widget mode's animation freeze (it was frozen fully offscreen). * Tue Aug 04 2026 den-fi - 1.6.5-1 - Widget-mode optimizations now actually engage: 1.6.4's plasmoid shipped without its embed flag (silent release-day copy failure). Plasmoid 1.0.7 sends the flag; the page also detects the widget engine directly (user-agent) so the optimization path cannot be lost again. Measured: a single widget's compositor cost collapsed from ~36% to ~4%. - New FPS widget (Linux): MangoHud CSV tail -- fps, frametime, 1% low, game name, sparkline; graceful waiting state; one-stanza setup. - Embedded-webview I/O: in-page Export/Import dialog (selectable JSON / paste-to-import) working in every embed; plasmoid 1.0.7 enables scripted clipboard COPY (paste remains manual Ctrl+V); keystroke guidance where host plumbing is absent; snippets copy falls back to select+Ctrl+C. - Frontend efficiency: process rows reused keyed by PID; storage and UPS panels rebuild structure only on set-change (fixes solo-graph blink); UPS redraw only on new samples; visualizer capped ~60fps and driven by audio signal (flat at rest, no idle animation, no mid-song freeze); pets settle to a sleeping pose before pausing; viewport- and zoom-aware tooltips. - Backend efficiency: collector cadence groups (sensors 5s, gpu-procs 3s, drives/mounts 10s, alerts/docker 5s, media 2s; headline data 1s); per-collector profiler (NADA64_PROFILE=1); battery-aware cadence for the two heaviest scans and the client poll; network-mount usage in an isolated worker (hung NFS/CIFS cannot stall the collector); audio capture exists only while a visible visualizer polls (tray mic indicator gone otherwise); visualizer picker gates on capability, not activity. - Pages self-reload when the server build changes: widgets never run stale code after upgrades. System panel shows the build hash on dev checkouts. * Fri Jul 31 2026 den-fi - 1.6.4-1 - Performance release. Animation broker: visible animated panels (viz, pet, aquarium, room, lava) run 30 s then freeze until pointed at (pointer events, so touch wakes too); with nothing animated visible the rAF loop stops entirely. Visibility-aware self-scheduling poll (30 s hidden, instant catch-up, never overlaps). - Wire diet: WHATS_NEW embedded in the page instead of every /stats; /stats pre-serialized once per publish; HTTP/1.1 keep-alive; iface_ip cached 30 s; DOM writes skipped when content unchanged. - Embed mode (?embed=plasmoid): glass blur and value-glide transitions off -- a controlled A/B measured the transitions at ~half the widget's compositor cost -- plus a gentler poll floor. Plasmoid 1.0.6 sends the flag, applies stepped retry backoff, strips stale transparent=1 from configured URLs so the checkbox always wins, and paints an opaque background when transparency is off. - nut-setup.sh enables nut.target: NUT now survives reboots (Fedora units are WantedBy=nut.target and nothing enabled the target itself). Re-run once if a UPS was set up with the 1.6.3 script. * Tue Jul 28 2026 den-fi - 1.6.3-1 - UPS single-UPS rich view: with one UPS the panel shows an hour of Load, Power, Input voltage, and Charge sparklines from a server-side history ring (survives reloads, shared by all browsers); dotted samples with a hover readout of value and clock time; wattage from ups.realpower where reported, else nominal x load marked as an estimate - Latency widget masks the WAN IP by default (no tooltip leak); explicit edit-mode toggle reveals it per browser - Fleet down rows decay from red to a dim theme color after 30 min down (server-tracked down_since), with duration in row and tooltip; fresh outages remain loud - Alerts older than 1h auto-hide behind a click-to-reveal count (journal errors by event time, failed units by first-seen); dismissal unchanged - Storage mounts that would truncate show the final directory name (with parent/leaf on basename collisions) instead of a start-anchored ellipsis - New packaging/nut-setup.sh: NUT setup for USB UPSes with vendor auto- detection across the common families (usbhid-ups / nutdrv_qx / bcmxcp_usb), Fedora and Debian layouts, idempotent, field-hardened - enable-smart.sh unit gains RuntimeDirectory so it survives reboots; re-run the script once after updating to install the fixed unit * Sun Jul 26 2026 den-fi - 1.6.2-1 - Fleet Wake-on-LAN: double-click a down node to send a magic packet; MACs are learned automatically from the ARP table while nodes are up and cached in ~/.config/nada64/fleet-macs.json (hand-editable override for nodes on other L2 segments); POST /wol is same-origin and fleet-hosts-only - CPU per-core view modes: classic Bars, Heat Tile Grid (numbered rounded tiles, load-graded fill and glow), and Core Trace Lines (per-core 1px sparklines with a dashed 100% reference, DPR-aware canvas); switcher on the CPU panel in edit mode, persisted per browser; per-core history is recorded in every mode so switching backfills instantly - Snippets widget recategorized from Media & fun to Homelab - Test suite gains a node runtime-execution harness for the core-view frontend (stub DOM, all modes) -- unbound identifiers now fail the build * Sun Jul 26 2026 den-fi - 1.6.1-1 - Homelab Pet art pass 2: bot, CRT, NAS, octo, jelly, and drone redrawn on a semantic palette (highlight/shadow/faint-interior cells) with unique silhouettes and real two-frame animations for type/tool/sleep/alert/cheer; raccoon and puppy intentionally keep their original upright art - Hover generalized to a species flag: CRT and jelly float, drone docks on a charging pad to sleep; frame resolver holds an action's base pose when an optional second frame is absent (kills the old flash-to-idle) - petFrame/patchFrame authoring helpers (readable in-source sprite art) and the art validator extended to *2 frame variants - Widget picker docks as a full-height fixed sidebar clear of every panel's resize grip, inherits the theme accent, sticky title with explicit close, lit scroll-down cue while options remain below the fold; header toolbar wraps beside it and Done closes it explicitly * Sat Jul 25 2026 den-fi - 1.6.0-1 - Proxmox VE scrub enrichment: NADA64_PVE_URL/_TOKEN/_INSECURE/_NODE, audit token, per-pool detail API, locale-free scan parsing; pool-API errors are source-prefixed and the amber label is now generic ("Pools API:") - Per-drive activity sparklines (client-side history ring; write=accent area, read=cyan line) and the SSD header now tracks the power-on-hours column (fixes header/row misalignment) - Pets 2.0: nine randomized-duration idle behaviors, double-click play mode with tap-to-walk, sleep now wakes on interaction, multi-pet roster (up to 3, they interact), new puppy and jelly species, cramped-panel nudge once per release; mac species picker buttons are wired for the first time - Battery: kernel time-to-empty/full estimates, cycle count, charge thresholds, AC state; new laptop facts (platform profile, sleep mode, hibernate, suspend stats) via /sys/power with env overrides; macOS gains cycle count via ioreg, Low Power Mode, hibernatemode-derived sleep mode, and named sleep blockers (powerd/sharingd ambient noise filtered) - packaging/nada64-autoupdate/ scoped daily timer + fleet-adopt.sh --timer (List-Cleanup=0) for PVE/PBS * Fri Jul 24 2026 den-fi - 1.5.11-1 - Battery vessel: the battery gauge is a draining battery icon -- accent fill turning amber at 30%% and red at 15%%, a bolt cutout while charging, state-colored percentage, one meta line, health in the corner; battery() honors NADA64_POWER_SUPPLY for testability - Snippet hover-expand: pointing at a snippet title unfolds the code view (closes when the pointer leaves); click-toggle retained for touch * Fri Jul 24 2026 den-fi - 1.5.10-1 - Colors menu in edit mode: six themes, a custom color picker (native OS picker, live retint), and Light/Dark -- per browser, no config edits - Export / Import: layouts and profiles as a shareable, validated JSON file - Snippet titles expand to a selectable code view (clipboard-walled widgets can copy by hand); rows restyled - USB HID UPSes detected from the kernel power_supply class, no NUT needed; NADA64_POWER_SUPPLY overrides the base path - unRAID drive temperatures via the emhttp mount already used for pools - Zoom controls moved bottom-center, clear of the resize handles; Processes added to the homelab widget layout; test suite made load-deterministic * Fri Jul 24 2026 den-fi - 1.5.9-1 - Storage pools now actually appear in the Drives widget; the section shipped blind in 1.5.7/1.5.8 (renderer unreachable from the poll) - TrueNAS API failures surface as an amber line under the pool chips (names the cause: bad key, certificate, DNS) and in /stats - NADA64_ZFS_KSTAT overrides the ZFS kstat path for container runtimes that mask /proc/spl * Fri Jul 24 2026 den-fi - 1.5.8-1 - Interface zoom (70-200%) in edit mode, with pinned zoom-stable controls - Snippets: in-place editing, zebra rows, larger copy target; fixed rows not rendering until the first add/delete (poll-path scope, both platforms) - macOS: snippet Add button wired up; full stylesheet restored (a truncated rule was silently dropping 132 style rules incl. gauges and fun widgets) - Server Room: higher wall/rack contrast; varied units -- drive shelves and switches with live activity - Wrong-platform launch fails fast with a clear message (NADA64_IGNORE_PLATFORM=1 overrides) - TrueNAS scrub: NADA64_TRUENAS_INSECURE=1 accepts self-signed certs; snippet edits reflect in /stats immediately * Fri Jul 24 2026 den-fi - 1.5.7-1 - macOS: the full fun-widget wave (Server Room, Aquarium, Lava Lamp, Snippets, six-species Homelab Pet with hover/petting) - Storage pools: ZFS health via kernel kstats, unRAID array/parity via emhttp (ro mount), optional TrueNAS API scrub detail; Drives widget Pools section with state chips - The pet swims in healthy pools and panics in red water on degradation - What's-new card retains recent releases and shows everything missed - Snippet copy works in non-secure (LAN http) contexts; --version flag * Thu Jul 23 2026 den-fi - 1.5.6-1 - Media & fun widgets: Server Room, Packet Aquarium, Lava Lamp, Snippets - Real-time music Visualizer (Linux): PipeWire capture, stdlib FFT, 60fps bars - Homelab Pet: six species (Bot/CRT/Octo/Raccoon/NAS/Drone), LED-signage renderer, hover wave and click-to-pet, actions table - Widgets menu organized by category; chronic room alarms calm to hourly - Profile switching auto-saves unsaved layouts; editing re-arms protection - macOS: profile protection parity and categorized menu (fun wave: 1.5.7) * Thu Jul 23 2026 den-fi - 1.5.5-1 - The NAS wave. Drives splits SSDs from spinning rust: solid state keeps wear and written, hard drives get live per-drive read/write rates, and both end with power-on hours where readable -- queried politely, never waking a parked disk. The System panel names your platform (TrueNAS, unRAID, KVM, LXC, Docker) and stops wasting rows on empty Desktop/WM lines. Network lists every active NIC on multi-homed machines. And the headliner: layout profiles -- save your arrangements, switch from the header, with stock Homelab and Gaming modes to riff on and NADA as the untouchable reference. Release notes now greet you once per version, like the one this line becomes. * Wed Jul 22 2026 den-fi - 1.5.4-1 - Alerts now reads every journal your user can see in one merged, current-boot query, so a few stale system errors can no longer hide fresh session ones; hover the count for when it last checked. The System panel badges virtual machines and containers with their technology (KVM, LXC, and friends) -- handy when half your fleet is guests of the other half. The time/date and now-playing header blocks are toggleable from the edit bar for stacked-dashboard and server setups; hostname, uptime, load, and processes stay put. Multi-monitor resolutions render as a tidy right-aligned column instead of a wrapped clump. * Wed Jul 22 2026 den-fi - 1.5.3-1 - Community review round, applied. The SMART helper now installs a root-owned copy for git-clone setups instead of letting a root timer execute user-writable code, and its service is sandboxed. macOS volume control actually works (the value was never being read). Fleet responses are size-capped and normalized server-side before they reach your browser; photos are verified as real images, size-capped, and streamed; NUT responses are bounded. The kernel ticker's phantom "journal not readable" is gone -- the collector now publishes each state atomically, so the dashboard never reads a half-built one. Also: empty photo folders stop being rescanned every second, the --listen help text tells the truth about the default, running the test file directly runs the whole suite, and the UPS clear button renders as an actual button. * Wed Jul 22 2026 den-fi - 1.5.2-1 - Photos goes gapless: the image fills the widget edge to edge, with the title, count, and new prev/next arrows appearing only on hover. The Kernel Ticker reads only the current boot and, when it can't read the journal, now says exactly why instead of a catch-all. One scrollbar style everywhere, not just the process table. * Wed Jul 22 2026 den-fi - 1.5.1-1 - Field fixes from the 1.5.0 rollout. Height-1 widgets (Kernel Ticker) place properly instead of claiming there's no room. Remove buttons in Discord, Photos, and Alerts no longer start a panel drag. Discord fetches identify themselves so Cloudflare stops mistaking the dashboard for a scraper. The UPS widget gained a clear button. The installer now verifies linger and says so out loud -- without it, a logged-out host shows as "refused" to the rest of the fleet. * Tue Jul 21 2026 den-fi - 1.5.0-1 - The widget wave lands. NADA64 Nodes watches every dashboard on your network with per-host CPU, memory, uptime, and version. Containers merges Docker and Podman in one view (distrobox aware) with NET and PIDS columns. New widgets: UPS (NUT protocol), Latency (gateway and WAN pings with packet loss), Session Peaks, Kernel Ticker, Photos (folders or URLs), Discord server presence, the LXIV load tachometer, and an idle DVD-bounce screensaver. Alerts are now dismissable, newest-first, and follow the 12/24H clock. Every new widget is configurable from the dashboard in edit mode or by hand in ~/.config/nada64. The macOS build catches up with fleet, containers, UPS, latency, photos, peaks, mascot, light mode, and now-playing album artwork. * Mon Jul 20 2026 den-fi - 1.4.0-1 - Three new widgets: Drives (NVMe wear/temp/written via the optional enable-smart.sh root timer), Alerts (failed systemd units and recent journal errors), and Blame. Widget menu reworked into two columns. Light mode toggle in the edit bar. * Mon Jul 20 2026 den-fi - 1.3.11-1 - Transparent embed mode darkens panels for readability on light wallpapers. Edit-mode controls wrap and stay reachable at small widget sizes. Packages now ship the NADA64 icon (used by the KDE Plasma widget). KDE plasmoid 1.0.4 available with persistent layouts and transparent mode. * Mon Jul 20 2026 den-fi - 1.3.9-1 - Fix responsiveness for KDE Plasma widget - See wiki for details. * Mon Jul 20 2026 den-fi - 1.3.9-1 - Transparency adjustments for KDE Plasma widget - See wiki for details. * Mon Jul 20 2026 den-fi - 1.3.8-1 - Fixed widget menu not showing up when pinned to bottom. * Sun Jul 19 2026 den-fi - 1.3.7-1 - Moved chassis fans from the GPU panel to the new sensor panel. Added toggles for time and wallpaper. * Sun Jul 19 2026 den-fi - 1.3.6-1 - Cleaner responsive handling for the GPU panel. More X over time metrics. * Sun Jul 19 2026 den-fi - 1.3.5-1 - Sensor labeling for most common components, CPU and GPU priority in sensor panel. * Sun Jul 19 2026 den-fi - 1.3.4-1 - Cleaner sensor panel w/ zebra striping for visibility. * Sun Jul 19 2026 den-fi - 1.3.3-1 - New sensors widget for those who prefer data to visuals. * Sat Jul 18 2026 den-fi - 1.3.2-1 - Widget selector is now transparent to improve visibility. * Sat Jul 18 2026 den-fi - 1.3.1-1 - Fixed issue causing new widget selector to not appear Added existing widget removal mechanism. * Sat Jul 18 2026 den-fi - 1.3.0-1 - Storage panel now includes network mounts (NFS/CIFS/SMB and friends), tagged and shown only when the panel has room. System panel gains fastfetch-style rows (packages, shell, resolution, locale) that appear when the panel is sized taller. New optional widgets, added from the edit menu: GPU Processes (per-process GPU usage via DRM fdinfo, Linux) and Battery (charge, power draw, time, health). Widgets are absent from default layouts and fully drag/resize/persist like core panels. * Sat Jul 11 2026 den-fi - 1.2.5-1 - Fixed issues with the volume slider causing clipping. Fixed issue where macOS version does not restart after brew update. * Sat Jul 11 2026 den-fi - 1.2.3-1 - Memory panel adapts its detail level to panel size — no more overlapping rows in small layouts. Version prints in system info. Fixed restart after package upgrade failures in Fedora and Ubuntu. * Sat Jul 11 2026 den-fi - 1.2.2-1 - Accessibility: the layout-edit button now announces itself as "Edit dashboard layout" to screen readers (was an unlabeled pencil glyph) * Sat Jul 11 2026 den-fi - 1.2.1-1 - This update brings movable, re-sizable panels and volume control, spacing fix for network stats. * Fri Jul 10 2026 den-fi - 1.1.7-1 - Security hardening from community review: origin checks, cmdline privacy, collector supervision, /health endpoint. See repo for full details. * Wed Jul 08 2026 den-fi - 1.1.6-1 - NADA64 now supports any color you want! See repo readme for details. Also fixed visual alignment of the storage section. * Wed Jul 08 2026 den-fi - 1.1.5-1 - NADA64 now audits build version and will self-refresh upon new version install across all platforms. * Wed Jul 08 2026 den-fi - 1.1.4-1 - NADA64 will now tint the distro logo to selected theme color. * Wed Jul 08 2026 den-fi - 1.1.3-1 - Colors are now uniform for Memory and Storage instead of white. * Tue Jul 07 2026 den-fi - 1.1.0-1 - System identity panel (distro, kernel, desktop/WM, distro logo) - Intel GPU utilization via DRM fdinfo; playback controls; portrait layout * Tue Jul 07 2026 den-fi - 1.0.0-1 - Initial package