From 6fbad46bca242f8fc05d9ec4413abe4b785d8a8c Mon Sep 17 00:00:00 2001 From: Bernardo Magri Date: Tue, 14 Jul 2026 17:47:44 +0100 Subject: [PATCH] =?UTF-8?q?docs(agent):=20#122=20=E2=80=94=20sextants=20DO?= =?UTF-8?q?=20work;=20chase=20the=20fallback,=20not=20one=20font's=20chars?= =?UTF-8?q?et?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Bernardo asked whether #122 was quick, and then caught the reason my first answer was wrong: the mono face is per THEME (ghostty.nix:22 reads t.fonts.mono from the theme JSON), and Boreal — the default theme and the base state — is GeistMono Nerd Font, not stylix's JetBrains Mono. I had probed the wrong font, then drawn a confident conclusion from a single charset. Both conclusions inverted on measurement, so the item now says the opposite of what it said an hour ago: * GeistMono covers no sextants, no braille — and no block elements or box drawing either. So the CURRENT logo already renders through fontconfig fallback on the default theme, and always has. Fallback is the normal case here, not the hazard I painted it as. * Fallback supplies sextants fine: fc-list :charset=1fb00 finds 37 families on a real Nomarchy box, including the shipped nerd-fonts.caskaydia-cove and noto-fonts' Symbols 2; fc-match under GeistMono picks CaskaydiaCove. No tofu. Braille: 59 families. So --symbols sextant is available and is roughly a one-flag edit for 6x the detail — rendered both variants to confirm the shape genuinely sharpens. The item is re-scoped accordingly: the edit is minutes, the WORK is verification. Two things can still make it worse and only a real terminal can say — fallback metrics (CaskaydiaCove's sextants drawn in GeistMono's cell may misalign or differ in stroke weight, exactly the seam that looks fine in a VM and wrong on a laptop), and the mark being diagonal-heavy, since diagonals staircase under any cell symbol: more resolution buys a finer staircase, not a straight line. If the mark itself wants straight strokes that is a logo.svg design change hitting all three surfaces, not a chafa flag — settle that first. V0: nix flake check --no-build passes. Backlog only. Co-Authored-By: Claude Opus 4.8 --- agent/BACKLOG.md | 51 +++++++++++++++++++++++++++++++++--------------- 1 file changed, 35 insertions(+), 16 deletions(-) diff --git a/agent/BACKLOG.md b/agent/BACKLOG.md index cc39ba4..9586882 100644 --- a/agent/BACKLOG.md +++ b/agent/BACKLOG.md @@ -140,23 +140,42 @@ with `magick`, and converted at build time by 20×10 grid carries roughly 20×20 pixels of detail and every diagonal turns into a staircase. -Cheap levers, in the order worth trying (chafa 1.18.2 ships them all — verified -2026-07-14): `--symbols sextant` (2×3 subcells per character — 6× the detail of -block, and the usual answer to exactly this), `quad`/`wedge` for 2×2, and a -larger `--size` with a matching `rsvg-convert -w`. `braille` is 2×4 but reads as -dots, not lines — probably wrong for a logo that wants straight edges. +**`--symbols sextant` is the lever, and it is available — verified 2026-07-14 on +a real Nomarchy machine.** Chase the *fallback*, not one font's charset; this +was got wrong twice while filing, both times by checking a single font: -**The trap that decides the whole approach, and must be checked FIRST:** -sextants and friends are Unicode 13 *Symbols for Legacy Computing* (U+1FB00–). -If the shipped terminal font lacks them, the logo renders as **tofu boxes** — -strictly worse than chunky. Verify coverage in the real terminal (Ghostty) with -the fonts the distro actually ships (`nerd-fonts-jetbrains-mono` et al.) before -committing to a symbol class; if coverage is missing or partial, the honest -answer may be a **hand-authored** logo in box-drawing glyphs (`─ │ ┌ ┐ └ ┘ ━ ┃` -+ block elements), which is the only way to get *genuinely* straight lines — -any image→symbol converter approximates. That would trade the automatic -accent-recolouring for hand-tuned art, so keep the recolour path -(`file-raw` + a build-time colorize) either way. +- The mono face is **per theme** (`ghostty.nix:22` → `t.fonts.mono` from the + theme JSON), not stylix's default. **Boreal — the default theme and the base + state — is `GeistMono Nerd Font`**; the other 23 themes are `JetBrainsMono + Nerd Font`. Any answer must hold for both. +- Neither of those two faces covers U+1FBxx (sextants), U+2800 (braille) — **and + GeistMono covers no block elements (U+2580–259F) or box drawing either**. So + **the logo already renders through fontconfig fallback on the default theme + today**, and has all along. Fallback is the normal case here, not the risk. +- Fallback resolves it: `fc-list :charset=1fb00` → **37 families** on a real + box, including the shipped `nerd-fonts.caskaydia-cove` plus + `noto-fonts`' Noto Sans Symbols 2; `fc-match "GeistMono Nerd Font:charset=1fb00"` + picks CaskaydiaCove. Braille: 59 families. **No tofu.** + +So the change itself is roughly a one-flag edit (`--symbols block` → +`sextant`, 2×3 subcells = 6× the detail, likely with a larger `--size` and a +matching `rsvg-convert -w`). **The work is the verification, not the edit.** +Two things can still make it look worse, and only a real terminal can say: +**(1) fallback metrics** — CaskaydiaCove's sextants drawn in GeistMono's cell +may not align or may differ in stroke weight, and this is precisely the kind of +seam that looks fine in a VM and wrong on a laptop; **(2)** the mark is +**diagonal-heavy** (an N-monogram of angled strokes), and diagonals staircase +under *any* cell symbol — more resolution makes a finer staircase, not a +straight line. If "straight lines" means the mark itself should be redrawn with +straight strokes, that is a **logo design change** to `logo.svg` — not a +renderer tweak — and it hits all three surfaces below. Settle which is wanted +before touching chafa flags. + +**Note the mark is diagonal-heavy** (an N-monogram of angled strokes), which is +the underlying tension: diagonals staircase under block symbols at *any* size. +If "straight lines" means the logo itself should be redrawn with straight +strokes, that is a **logo design change** to `logo.svg`, not a renderer tweak — +and it would hit all three surfaces below. Settle which is wanted first. Do **not** conflate the three logo surfaces — they are different renderers and a change here touches only the first: fastfetch (this item), the ISO boot splash