From c9ff9b2f5434ff09b02a3ab33eada2d8721d242f Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Thu, 17 Sep 2026 10:04:09 +0200 Subject: feat: give the clock its own font Installs Oswald (OFL-1.1, from googlefonts/OswaldFont) under ~/.fonts/o/Oswald with its license, and points the clock numerals at it for the squared look the rounded Noto Sans Black did not have. Per-widget fonts needed no new machinery: card.font() already takes any family string, so FONT_* are shared defaults rather than a restriction. FONT_CLOCK joins them, and the weather card keeps FONT_HEAVY, so the two no longer have to agree. Cairo still cannot ask for a weight above bold, so a heavier cut is selected by family name as FONT_HEAVY already did. Worth knowing that fontconfig substitutes a default for a family it does not recognise, which is indistinguishable from the font not applying; fc-match tells you which happened. Co-Authored-By: Claude Opus 5 --- lib/card.lua | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'lib') diff --git a/lib/card.lua b/lib/card.lua index 4d94465..3352c4b 100644 --- a/lib/card.lua +++ b/lib/card.lua @@ -13,6 +13,18 @@ M.FONT_MONO = 'Inconsolata Nerd Font' M.FONT_UI = 'Noto Sans' M.FONT_HEAVY = 'Noto Sans Black' +-- Shared defaults, not a restriction: card.font() takes any family string, so +-- a widget wanting its own face just passes one. The clock does, for squared +-- numerals (Oswald, OFL-1.1, installed under ~/.fonts/o/Oswald). +-- +-- Cairo can only ask for Regular or Bold by weight, so a heavier cut is +-- selected by the family name fontconfig registers for it, exactly as +-- FONT_HEAVY does above: 'Oswald SemiBold' at NORMAL weight, not 'Oswald' at +-- bold. Fontconfig silently substitutes a default for a family it does not +-- know, which looks identical to the font "not applying", so check a new name +-- with `fc-match` before trusting it. +M.FONT_CLOCK = 'Oswald' + function M.font(cr, family, size, bold) cairo_select_font_face(cr, family, CAIRO_FONT_SLANT_NORMAL, bold and CAIRO_FONT_WEIGHT_BOLD or CAIRO_FONT_WEIGHT_NORMAL) -- cgit v1.2.3