| Age | Commit message (Collapse) | Author | Files | Lines |
|
Extract card.notice so every cached card's no-data state is one fluid,
theme-consistent face instead of a copy per widget, and delete the
fixed-size card.label it replaces.
Derive weather's arc geometry from its band (pad, curve room, sun dot,
time labels) instead of fixed pixels, and cap the arc at a proportion of
the card's width rather than 240px.
Derive disks' bar-fallback height and its address type from the card's
own label scale.
Standardise the big-value factor to 1.0 across the fit_unit cards and
document the big-value colour rule and the disks headline exception.
|
|
Mirror the weather header so the glyph sits large on the left and the
temperature, city and condition run against the right edge, and move the
system card's CPU percentage onto its header line, right-aligned. All
big values now render at the card's right edge.
|
|
Temperature and city stay against the left edge; the glyph moves to the
right edge, so the header reads as a value on one side and its icon on
the other rather than one run of text.
text_right takes the right edge as its x and measures ink, which is what
aligning to an edge wants, as against advance() for stepping a cursor.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
|
The grid was 4x2, which made every placement decision a coarse one. 8x6
gives 299x157 cells, so a card can be sized in something closer to the
increments the layout actually wants. Nothing in rect_for needed
changing: it derives cell size from COLS and ROWS, so this is a
two-number edit.
Note that ROWS has to cover the tallest row in use. A widget placed on
row 3 of a two-row grid is computed at y=1068 on a 1080px screen and
draws off the bottom, silently.
The arc band no longer has a minimum height. It had one, and in a cell
40px shorter than the content wanted, the minimum won and pulled the
curve up through the stat rows, drawing the sunrise time across the word
WIND. It now takes what is genuinely left and is skipped below the
height where it could be read, so the same widget composes in a 2x2 or a
2x3 cell without overlapping anything. Checked by rendering the widget
offscreen at 2x1, 2x2 and 2x3 before restarting conky.
Layout is now a 1x3 clock with a 2x3 weather card beneath it.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
|
Placement is column 1 row 2, directly beneath the clock, which drops to
a single-row cell to make room.
The card's type now scales off the cell WIDTH rather than its height.
Scaling off height meant the text shrank every time the cell got
shorter, and beside the clock's numerals the card read as a whisper.
Width is the stable dimension for this layout and is what constrains the
text anyway, since the stat rows run edge to edge.
Verified against the live dashboard, not only the offscreen render: the
two disagreed about type size precisely because the offscreen harness
was cropped to the card and never showed it next to the clock.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
|
The first draft placed every band at a fixed pixel offset and let the
arc absorb whatever height was left. In a 1x2 cell on this monitor that
is 794px of arc: a cathedral arch under a fifth of a card of content,
nothing like the mockup it was shaped after.
Three changes, all visible in an offscreen render of the real widget:
- Type sizes and band offsets scale with the rect, within clamps, so the
proportions hold on the 1920 monitor as well as this one.
- The arc gets a bounded band that follows the stats instead of being
pinned to the bottom, so no dead strip opens between them.
- The layout gives the widget a 1x1 cell. Its content is about 350px
tall and a full-height cell cannot be filled without inventing data.
Found before restarting conky by loading conky's own cairo bindings
standalone and rendering the widget to a PNG, which is a far tighter
loop than install, restart, switch workspace, screenshot.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|
|
Draws current conditions plus a sunrise-to-sunset arc in widgets/weather.lua,
placed at col 2 in dashboard.lua's layout. Schedules the periodic fetch via
execi in conky.conf.in, tying refresh to conky's own lifecycle.
The no-data env-file probe now closes its handle explicitly: the branch reruns
every draw until a fetch succeeds, so an unclosed io.open there would leak one
handle per frame.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
|