aboutsummaryrefslogtreecommitdiffstats
path: root/desktop
diff options
context:
space:
mode:
Diffstat (limited to 'desktop')
-rw-r--r--desktop/island/README.md39
1 files changed, 38 insertions, 1 deletions
diff --git a/desktop/island/README.md b/desktop/island/README.md
index 96716d2..c4cf35f 100644
--- a/desktop/island/README.md
+++ b/desktop/island/README.md
@@ -46,8 +46,11 @@ is open or not. Click opens the calendar panel.
## Status pill
-Left to right: controls icon, volume icon, tray, layout flag.
+Left to right: performance icon, controls icon, volume icon, tray, layout
+flag.
+- **Performance icon** opens the performance panel, see below. A dot on its
+ corner warns when something needs attention.
- **Controls icon** opens the controls panel, see below.
- **Volume icon** shows the default sink (muted, low, medium, high). Click
opens the sound panel.
@@ -81,6 +84,40 @@ they change and keeping keys it does not know. A tile added to the code
later starts hidden. Pure helpers in `Controls.js`, tested with
`node island/test_controls.js`.
+## Performance panel
+
+The system monitor icon, first in the status pill, opens a card grid of the
+figures the conky dashboard used to show: CPU load with a bar per core, the
+CPU model, RAM and five temperatures; the Arc B580's temperatures, VRAM and
+fan (no utilisation, xe exposes none); download and upload over the last
+minute, the LAN address and the public IP; and the five mounts with their
+usage. `perf/Perf.qml` reads them; `perf/Perf.js` holds the parsing, tested by
+`node desktop/island/perf/test_perf.js`.
+
+A dot on the icon shows the worst of these, yellow or red:
+
+| Input | Yellow | Red |
+| --- | --- | --- |
+| each temperature | its warn | its crit |
+| RAM | 85% | 95% |
+| each disk | 90% | 95% |
+| public IP | | differs from the pinned one |
+
+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
+`$XDG_STATE_HOME/quickshell/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
+`~/.cache/udt/pubip.txt`, the file conky's sampler used. A failed fetch is
+never a mismatch: the old value goes stale after 4 hours and shows as a dash.
+
+CPU, RAM, temperatures and disks are sampled always, so the dot works with
+the panel closed. Per-core load, the network rate, VRAM (a scan of every
+fdinfo, ~14ms) and the fan run only while the panel is open, and the panel
+itself is loaded only then. The mount list, `br0`, the GPU name and the
+12 GiB VRAM size are constants in `Perf.qml`.
+
## Calendar panel
The clock pill opens a month grid beside the selected day's agenda. Dots