diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-18 10:40:18 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-18 10:40:18 +0200 |
| commit | e54d9405dd818cd3ee7c203b8ec1d21713470904 (patch) | |
| tree | 5b7afeff3bcec5c79c9aee4c9a1d09bc610fe3eb /README.md | |
| parent | 7f14e983c2ed73f69dbdd7bb155203a0762b814a (diff) | |
| download | conky-theme-udt-e54d9405dd818cd3ee7c203b8ec1d21713470904.tar.gz conky-theme-udt-e54d9405dd818cd3ee7c203b8ec1d21713470904.zip | |
feat: the cache and slackware cards move to quickshell
Both cards are now drawn by quickshell, so the conky copies go: the two
widgets, their samplers and texeci lines, their fixtures and icons, and
du_parse with human_bytes, which only the cache card used. kv_parse stays
for breaktimer; its test now runs on an inline string. README gains a
Samplers section listing what conky still schedules, and DESIGN.md's
examples point at the cards that remain. Their slots in the layout are
left open.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 49 |
1 files changed, 16 insertions, 33 deletions
@@ -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. |
