aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md49
1 files changed, 16 insertions, 33 deletions
diff --git a/README.md b/README.md
index 400d4e6..c5b261b 100644
--- a/README.md
+++ b/README.md
@@ -63,55 +63,39 @@ in the source, so no real location appears in committed files.
## System widgets
-Three cards cover the machine itself:
-
-- **Cache**: `~/.cache` total and its four largest subdirectories.
-- **Slackware**: distribution version, package count, kernel, install age, and
- time since the last `slackpkg` ChangeLog update. See below.
-
CPU, RAM, temperatures, the GPU, disks, network and the public address used to
be cards here. They moved to the performance panel of the quickshell island
(`desktop/island/` in the quickshell repo), which also warns from the status
-pill. The island keeps writing `~/.cache/udt/pubip.txt`.
+pill. The island keeps writing `~/.cache/udt/pubip.txt`. The cache and
+Slackware cards followed them to quickshell.
The updates card, a copy of nvtable's table, moved to the updates page of the
quickshell drawer (`desktop/modules/updates/`), which sorts each pending update
into the action it needs and covers Slackware itself.
-The cache card reads a cache file that a sampler writes; it never calls `du`
-itself. Sampling is scheduled by conky itself: `conky.text` carries
-a threaded `${texeci}` per sampler, even though that block renders nothing under Cairo.
+## Samplers
+
+Cards read cache files that samplers write; none shells out from a draw.
+Sampling is scheduled by conky itself: `conky.text` carries a threaded
+`${texeci}` per sampler, even though that block renders nothing under Cairo.
${texeci 900 ~/.config/conky/bin/weather-fetch.sh}
- ${texeci 900 ~/.config/conky/bin/cache-sample.sh}
- ${texeci 900 ~/.config/conky/bin/slackware-sample.sh}
${texeci 300 ~/.config/conky/bin/calendar-sample.sh}
+ ${texeci 5 ~/.config/conky/bin/breaktimer-sample.sh}
${texeci 1800 ~/.config/conky/bin/immich-fetch.sh}
-The cache and Slackware samplers run every 15 minutes, because `du -sh
-~/.cache` walks the tree and takes about 100ms warm, which is fine on a slow
-cycle and unthinkable on the 2-second draw. The calendar
-sampler runs every five minutes: khal costs about 200ms of Python startup,
-which rules out calling it from a draw, and the cache has to notice both a
-vdirsyncer run and the day rolling over. Tying them to
-conky means nothing samples while the dashboard is down.
+The calendar sampler runs every five minutes: khal costs about 200ms of Python
+startup, which rules out calling it from a draw, and the cache has to notice
+both a vdirsyncer run and the day rolling over. Tying them to conky means
+nothing samples while the dashboard is down.
To run a sampler by hand:
- ./bin/cache-sample.sh; echo "exit: $?"
- ./bin/slackware-sample.sh; echo "exit: $?"
./bin/calendar-sample.sh; echo "exit: $?"
All print nothing and exit 0 on success, and all write a temp file and rename
it over the target, so the widget never reads a half-written file.
-### Slackware
-
-The big top-right value is the time since `/var/lib/slackpkg/ChangeLog.txt`
-last changed, coloured `ok` under 24 hours, `warning` to a week, `critical`
-beyond, the same three-role language the cache card uses. Below it: distribution version, package count, kernel, and install age
-(the root filesystem's birth time, where the filesystem records one).
-
### Calendar
The month grid with the week's appointments under it. A day carrying an event
@@ -186,9 +170,8 @@ Anything with a comfortable range and an uncomfortable one is coloured by the
same three roles, so a card reads without learning a new scheme: `ok` below the
first threshold, `warning` between them, `critical` above the second.
-Cache usage uses 25% and 75%. The Slackware card's ChangeLog age uses the same
-three roles on an hour scale (24 / 168) instead of a percentage. These are
-starting values, and sit in one table per widget so they are easy to retune.
+Thresholds are starting values, and sit in one table per widget so they are
+easy to retune.
## Changing the layout
@@ -252,8 +235,8 @@ cell is left sparse; size it off the height alone and a short cell shrinks the
text to a whisper. The robust way is a measured fit: `card.fit_unit()` returns
the largest base size at which every row still fits the width, and the widget
takes the smaller of that and its height budget. Larger cell, larger type; a row
-that would collide pulls the size back down. The cache card does
-this. A card that cannot afford the measuring pass can still key off width with
+that would collide pulls the size back down. The breaktimer and
+immich cards do this. A card that cannot afford the measuring pass can still key off width with
a clamp, `math.max(lo, math.min(hi, inner.w * k))`; the clock and weather
cards do.