aboutsummaryrefslogtreecommitdiffstats
path: root/widgets/details.lua
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-10-18 14:54:37 +0200
committerDanilo M. <danix@danix.xyz>2026-10-18 14:54:37 +0200
commit1e8203d8b0e1a75d8dbfa643dd29a0276c89abac (patch)
tree4b32f3d14594b08766fab25575c43c414e9bbfa1 /widgets/details.lua
parent1c9f2e4e5d8638148308362e98f07fd7582d4063 (diff)
downloadconky-theme-udt-1e8203d8b0e1a75d8dbfa643dd29a0276c89abac.tar.gz
conky-theme-udt-1e8203d8b0e1a75d8dbfa643dd29a0276c89abac.zip
fix(weather cards): arrowhead needle, matched type sizes, visible rain bars
- details: the wind needle ends in a filled arrowhead instead of a dot, so the direction it points (where the wind goes) reads one way only. - hourly, details, sky: raise each card's share so card.standard reaches the same S (72) as now and week. Title and row text now match across the five cards (21.6px / 23px), in line with breaktimer and calendar. The bands (curve, compass, arc) absorb what is left. - hourly: band labels follow the band height a little more (capped at the row size), so they do not shrink with the taller header. - hourly: rain-chance bars at half alpha with a minimum height for any nonzero chance. Typical chances are a few percent, which scaled honestly is a 1px bar that no alpha can rescue. - now: the condition line sits on the card's foot, so the height the capped type leaves over is not an empty strip at the bottom. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'widgets/details.lua')
-rw-r--r--widgets/details.lua18
1 files changed, 12 insertions, 6 deletions
diff --git a/widgets/details.lua b/widgets/details.lua
index 8b107a9..45f2f3d 100644
--- a/widgets/details.lua
+++ b/widgets/details.lua
@@ -33,14 +33,20 @@ local function draw_compass(cr, x, y, w, h, colors, deg, S)
-- Open-Meteo gives where the wind comes FROM; the needle points where it goes.
local a = math.rad(deg + 180)
local tip = r - size * 2
- local tx, ty = cx + tip * math.sin(a), cy - tip * math.cos(a)
+ local sa, ca = math.sin(a), math.cos(a)
+ -- A filled arrowhead at the tip, so the needle reads one way only. The shaft
+ -- stops at the head's base: a stroke run to the apex would blunt it.
+ local head, half = r * 0.22, r * 0.11
+ local bx, by = cx + (tip - head) * sa, cy - (tip - head) * ca
card.rgba(cr, colors.highlight)
cairo_set_line_width(cr, math.max(2, r * 0.04))
- cairo_move_to(cr, cx - tip * 0.6 * math.sin(a), cy + tip * 0.6 * math.cos(a))
- cairo_line_to(cr, tx, ty)
+ cairo_move_to(cr, cx - tip * 0.6 * sa, cy + tip * 0.6 * ca)
+ cairo_line_to(cr, bx, by)
cairo_stroke(cr)
- cairo_new_path(cr)
- cairo_arc(cr, tx, ty, math.max(3, r * 0.06), 0, math.pi * 2)
+ cairo_move_to(cr, cx + tip * sa, cy - tip * ca)
+ cairo_line_to(cr, bx + half * ca, by + half * sa)
+ cairo_line_to(cr, bx - half * ca, by - half * sa)
+ cairo_close_path(cr)
cairo_fill(cr)
end
@@ -69,7 +75,7 @@ function M.draw(cr, rect, colors)
{ 'AIR (EAQI)', weather.num(aqi), colors[weather.aqi_role(aqi)] },
}
local y, S = card.standard(cr, inner, colors, {
- icon = card.ICON.details, title = 'DETAILS', rows = rows, share = 0.6,
+ icon = card.ICON.details, title = 'DETAILS', rows = rows, share = 0.8,
})
draw_compass(cr, inner.x, y, inner.w, inner.y + inner.h - y, colors, c.wind_deg, S)
end