docs(agent): #122 — sextants DO work; chase the fallback, not one font's charset
All checks were successful
Check / eval (push) Successful in 3m27s

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 <noreply@anthropic.com>
This commit is contained in:
2026-07-14 17:47:44 +01:00
parent 347f6544aa
commit 6fbad46bca

View File

@@ -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+2580259F) 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