diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-17 13:03:18 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-17 13:03:18 +0200 |
| commit | ad40e5c153fa2ccd9162bc970eabd5a11db11a32 (patch) | |
| tree | c6b2c57ea1deab1f2eae373a95004cdcba67c90e /README.md | |
| parent | adecc8de0e90b3856c8807e1c3610c70879545ad (diff) | |
| download | conky-theme-udt-ad40e5c153fa2ccd9162bc970eabd5a11db11a32.tar.gz conky-theme-udt-ad40e5c153fa2ccd9162bc970eabd5a11db11a32.zip | |
feat: fluid type for the gpu and cache cards
The big value moves to the right of the heading, on the same baseline,
so the card's width carries it instead of leaving the right half empty.
Type now scales to fill the cell: card.fit_unit measures the rows and
returns the largest size that fits the width, and the widget takes the
smaller of that and its height budget, shrinking only where a row would
collide.
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 24 |
1 files changed, 16 insertions, 8 deletions
@@ -181,11 +181,16 @@ widget code. Three rules, all learned by getting them wrong: elements. A fixed `+34` under a numeral that scales leaves a dead band in a tall cell and overlaps in a short one. -**Scale type off the WIDTH, not the height.** Height is what changes when you -add a row to the grid, and a card that shrinks its text every time its cell gets -shorter reads as broken beside its neighbours. Width is also usually what -constrains the text, since rows run edge to edge. Clamp it: `math.max(lo, -math.min(hi, inner.w * k))`. +**Fill the cell with type, and shrink only on collision.** Height is what +changes when you add a row to the grid. Size type off the width alone and a tall +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 GPU and cache 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, weather, system and disks +cards do. **Decide where the slack goes, and let one element absorb it.** The clock pins its date block to the bottom and gives the numerals everything above. The @@ -314,9 +319,12 @@ for nil, string, table, boolean, NaN and negative arguments. It matters because the parser's input is a file written by a network fetch, and a raise here is a blank dashboard rather than a message. -**Card type scales off the cell WIDTH, not its height.** Height changes with the -grid, and scaling off it made the weather text shrink to a whisper beside the -clock's numerals when its cell got shorter. +**Type keyed on one dimension alone leaves the card broken or sparse.** The +weather text once shrank to a whisper beside the clock when its cell got shorter +because the size keyed on height; a card keyed only on width leaves a tall cell +half empty. Fill the cell instead: `card.fit_unit()` measures the rows and +returns the largest size that fits the width, the widget takes the smaller of +that and its height budget, and a row that would collide pulls the size down. **A bare `df` would silently mis-read every disk figure.** The user's shell aliases `df` to `df -h`, so `bin/disks-sample.sh` calls `/usr/bin/df -P -B1` by |
