aboutsummaryrefslogtreecommitdiffstats
path: root/dashboard.lua
AgeCommit message (Collapse)AuthorFilesLines
2026-09-17feat: put the weather card under the clock, scale its type to widthDanilo M.1-5/+5
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>
2026-09-17fix: size the weather card to its contentDanilo M.1-1/+4
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>
2026-09-17feat: add the weather cardDanilo M.1-0/+1
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>
2026-09-16test: check grid maths on both real screen sizesDanilo M.1-0/+5
The grid's justification is that one layout table works on differently shaped screens, so assert it: every cell lands inside the margins at 2560x1080 and 1920x1080, a spanning cell absorbs the gap it covers, and no shipped layout entry falls outside the declared grid. dashboard.lua exports its internals for this; cairo and lib.card are stubbed via package.preload since they only exist inside Conky. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16feat: draw to a Wayland Cairo surface with an error overlayDanilo M.1-0/+154
Entry point, grid maths, palette parsing and widget dispatch. Uses conky_surface(), not cairo_xlib_surface_create: under out_to_wayland the Xlib drawable and visual are both nil, so the idiom every Conky-Lua tutorial uses cannot work here. The pcall overlay lands before any widget exists, because Conky reports a Lua fault as a blank screen with no message on any stream. Verified by injecting a fault and seeing it reported. A missing widget names itself in its own cell rather than leaving the cell empty. conky.conf here is a development config with literal colours; the templated one arrives with the UDT wiring. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>