egui viewer for the vitals-log CSV files: status strip, grouped time-series plots, incremental tailing of the monthly logs. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
vitals
Viewer for the CSV logs written by vitals-log (~/.local/bin/vitals-log, run
every minute by the vitals-log.timer systemd user unit). Shows the latest
reading and time-series plots of temperatures, battery, memory, memory pressure
and load. Built with egui and egui_plot.
cargo install --path .
vitals [--dir PATH] [--interval SECONDS] [--range 1h|6h|24h|7d|all]
The log directory defaults to $XDG_STATE_HOME/vitals (~/.local/state/vitals).
Every vitals-YYYY-MM.csv there is loaded at startup; after that only bytes
appended since the last check are read (every 10 s by default). Columns are
matched by header name, so a changed log layout shows gaps rather than breaking.
Drag to pan and ctrl-scroll or pinch to zoom the time axis; all plots move together. Picking a range preset returns to following the clock. Lines break where the logger was not running, and on-battery periods are shaded in the battery plot. Wide ranges are reduced to per-bucket min/max, so spikes stay visible.
src/data.rs— parsed series, windowing, gap splitting, downsamplingsrc/tail.rs— incremental file reader, month rollover, replaced-file reloadsrc/main.rs— the UI; thePANELStable defines the plots