diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-27 13:56:24 +0100 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-27 13:56:24 +0100 |
| commit | 8c15dc1205d879591318cf365e15b014477329c1 (patch) | |
| tree | f315c92394f8db96c36f56c8a93f9d8feedade20 /desktop/modules/perf/README.md | |
| parent | 6b68cae8e0c4ec43c4a9a8a812a644b7bea746e7 (diff) | |
| download | quickshell-8c15dc1205d879591318cf365e15b014477329c1.tar.gz quickshell-8c15dc1205d879591318cf365e15b014477329c1.zip | |
network: traffic, its busiest processes and the IPs on the page
The rx/tx graph, the LAN address and the public IP with its pin move from
the perf page's NET card to the network page, where they belong; the NET
card is gone. Perf still samples and owns all of them: the graph opens on
the last minute of history, and a public IP that differs from the pin
still lights the perf tile's dot.
Below the graph, the five busiest processes. nethogs is installed but
cannot open any interface unprivileged, so the rates come from
`ss -tinpH`: per-socket byte counters diffed every 2s while the page is
open, summed by process name. That counts TCP only, and only the user's
own processes, so QUIC and system services are missing. The list is held
at five rows tall so the IP lines under it never move.
Perf.js gains sockets() and netProcs(), with tests in test_perf.js.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'desktop/modules/perf/README.md')
| -rw-r--r-- | desktop/modules/perf/README.md | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/desktop/modules/perf/README.md b/desktop/modules/perf/README.md index 8282a50..3d11be4 100644 --- a/desktop/modules/perf/README.md +++ b/desktop/modules/perf/README.md @@ -3,8 +3,7 @@ The figures the conky dashboard used to show, as a drawer page of cards, one per row; the page scrolls. CPU load with a bar per core, the CPU model and RAM; every temperature as a tile; the Arc B580's VRAM and fan (no -utilisation, xe exposes none); download and upload over the last minute, the -LAN address and the public IP; the five mounts with their usage; and +utilisation, xe exposes none); the five mounts with their usage; and `~/.cache` with its five largest children. `Perf.qml` reads them; `Perf.js` holds the parsing, tested by `node desktop/modules/perf/test_perf.js`. @@ -19,7 +18,7 @@ The tile shows CPU and RAM, and a dot for the worst of these, yellow or red: CPU load is left out, since spikes would flicker it. There is no hysteresis, so a sensor sitting on its threshold can toggle the dot. The pin beside the -public IP stores the address shown as `perf.pinnedIp` in +public IP, on the network page, stores the address shown as `perf.pinnedIp` in `$XDG_STATE_HOME/keystone/desktop.json`; the check exists because the VPN into the LAN depends on the ISP's fixed address. The fetch is `curl -4 https://ipinfo.io/ip` every 30 minutes from the last attempt, into @@ -27,8 +26,9 @@ into the LAN depends on the ISP's fixed address. The fetch is never a mismatch: the old value goes stale after 4 hours and shows as a dash. Everything is sampled always, including per-core load, the network rate, -VRAM (a scan of every fdinfo, ~14ms every 2s) and the fan, so the page opens -on the last minute of network history instead of an empty graph. The mount list, `br0`, the GPU name and the 12 GiB VRAM +VRAM (a scan of every fdinfo, ~14ms every 2s) and the fan. The network rate +is drawn by the network page, which reads it from here, so its graph opens +on the last minute of history instead of empty. The mount list, `br0`, the GPU name and the 12 GiB VRAM size are constants in `Perf.qml`. The CPU card ends with the five heaviest processes, by CPU or by RAM (a |
