max / alloy
- Co-Authored-By
- Claude Opus 5 (1M context) <noreply@anthropic.com>
3 files changed,
+53 insertions,
-33 deletions
| @@ -113,28 +113,34 @@ | |||
| 113 | 113 | | Alias | Order | In the image? | | |
| 114 | 114 | |---|---|---| | |
| 115 | 115 | | `monospace` | IosevkaTerm Nerd Font Mono | yes, 81 faces under `iosevkaterm-nerd` | | |
| 116 | - | | | Iosevka Term | no | | |
| 117 | - | | | Iosevka Nerd Font | no | | |
| 118 | - | | | Iosevka | no | | |
| 119 | - | | | DejaVu Sans Mono | no | | |
| 120 | 116 | | `sans-serif` | Atkinson Hyperlegible | yes | | |
| 121 | - | | | Inter | no | | |
| 122 | 117 | | | Cantarell | yes, `abattis-cantarell-vf-fonts` | | |
| 123 | - | | | DejaVu Sans | no | | |
| 124 | - | | `serif` | Source Serif 4 | no | | |
| 125 | - | | | Source Serif Pro | no | | |
| 126 | - | | | Liberation Serif | yes | | |
| 127 | - | | | DejaVu Serif | no | | |
| 118 | + | | `serif` | Liberation Serif | yes | | |
| 128 | 119 | | `emoji` | (deliberately absent) | no emoji font is installed | | |
| 129 | 120 | ||
| 130 | - | **Six of the fourteen named families are not in the image.** They cost nothing at | |
| 131 | - | runtime, because `<prefer>` skips what is absent, and they are not the emoji-alias defect | |
| 132 | - | (that alias changed where emoji resolved to; these do not change anything). They are a | |
| 133 | - | reading hazard rather than a rendering one: the list looks like a depth of fallback that | |
| 134 | - | is not there. The monospace chain in particular has exactly one live entry, so if | |
| 135 | - | IosevkaTerm ever failed to install, resolution would drop past four dead names straight | |
| 136 | - | into Fedora's own generic rules. Whether the dead names get deleted or annotated is GO | |
| 137 | - | task `6aeeb122`. | |
| 121 | + | **Every family named is installed.** That is new as of 2026-08-16: nine of the thirteen | |
| 122 | + | names this list used to carry were not in the image, and they were deleted (GO task | |
| 123 | + | `6aeeb122`, settled by Max as "delete"; the edit is `29390a99`). Gone from `monospace`: | |
| 124 | + | Iosevka Term, Iosevka Nerd Font, Iosevka, DejaVu Sans Mono. From `sans-serif`: Inter, | |
| 125 | + | DejaVu Sans. From `serif`: Source Serif 4, Source Serif Pro, DejaVu Serif. | |
| 126 | + | ||
| 127 | + | They cost nothing at runtime, because `<prefer>` skips what is absent, and they were not | |
| 128 | + | the emoji-alias defect (that alias changed where emoji resolved to; these changed | |
| 129 | + | nothing). They were a reading hazard: the list looked like a depth of fallback that was | |
| 130 | + | not there. | |
| 131 | + | ||
| 132 | + | **What the shortened `monospace` list makes visible is that the chain has one link.** If | |
| 133 | + | IosevkaTerm ever failed to install, resolution does not reach a second Alloy pick. It | |
| 134 | + | drops straight into Fedora's generic rules (`45-latin.conf`, `60-latin.conf`) and lands | |
| 135 | + | on whatever those order first, which is the layer described below. The four dead Iosevka | |
| 136 | + | spellings obscured exactly that. | |
| 137 | + | ||
| 138 | + | **Removing Inter changed one behaviour, and it is the one deletion that was not only | |
| 139 | + | tidying.** Inter is not in the image, so it never served a request. What it did do was | |
| 140 | + | sit at position 2 of `sans-serif`, so anyone who installed Inter for an unrelated app | |
| 141 | + | silently repointed Alloy's whole UI font. Preferring Inter is still supported and is | |
| 142 | + | still what STACK.md describes: an edit to the alias and to `gtk-font-name`, which is a | |
| 143 | + | choice rather than a side effect of having the font on disk. | |
| 138 | 144 | ||
| 139 | 145 | **What actually catches a gap is the layer below this file**, and it is worth naming | |
| 140 | 146 | because the chain above suggests otherwise: |
| @@ -588,9 +588,9 @@ | |||
| 588 | 588 | ||
| 589 | 589 | Rejected: Inter (excellent but less legibility-maximized; kept as documented alternate), IBM Plex Sans (corporate-shaped), Roboto/Cantarell (default-neutral, no advantage over Atkinson), Iosevka Aile (family coherence appealing but Aile isn't as readable at small sizes as dedicated UI fonts). | |
| 590 | 590 | ||
| 591 | - | ### Serif: **not shipped** | |
| 591 | + | ### Serif: **Liberation Serif, by inventory rather than by choice** | |
| 592 | 592 | ||
| 593 | - | Alloy declines to prescribe. Nothing Alloy authors is serif; the browser and any long-form reading surface fall through to the system default (Source Serif 4 or Liberation Serif on Fedora). fontconfig alias covers the fallback chain politely without adopting a serif font as an Alloy commitment. | |
| 593 | + | Alloy has no serif thesis. Nothing Alloy authors is serif, and no long-form reading surface it ships is either. The `serif` alias names Liberation Serif because that is the one serif the image installs, so the alias resolves somewhere known instead of somewhere unstated. It used to lead with Source Serif 4 and Source Serif Pro, neither of which is in the image, under a comment saying Alloy declined to prescribe; that read as a commitment nobody had made and a fallback nobody had. Naming what is on disk is the statement of fact. If Alloy ever wants a serif, this is the line to change and STACK.md is where the argument goes. | |
| 594 | 594 | ||
| 595 | 595 | ### Non-Latin scripts: **Fedora's coverage metapackages** | |
| 596 | 596 |
| @@ -8,7 +8,11 @@ | |||
| 8 | 8 | ||
| 9 | 9 | - monospace -> IosevkaTerm Nerd Font Mono (Term: no ligatures; Mono: single-cell icons) | |
| 10 | 10 | - sans-serif -> Atkinson Hyperlegible (max letter distinguishability) | |
| 11 | - | - serif -> browser/system default; Alloy declines to prescribe | |
| 11 | + | - serif -> Liberation Serif, the one serif the image installs | |
| 12 | + | ||
| 13 | + | Every family named below is installed in the image. Names that were not | |
| 14 | + | were deleted 2026-08-16: a preference list is read as a depth of fallback, | |
| 15 | + | and a name fontconfig silently skips is a claim the file cannot back. | |
| 12 | 16 | ||
| 13 | 17 | Departure Mono is *not* here — it is the Alloy brand mark, invoked | |
| 14 | 18 | by name where wanted (marquee UI, headers), never as a generic family. | |
| @@ -24,37 +28,47 @@ | |||
| 24 | 28 | over whatever follows it. The Mono family is the same font with the | |
| 25 | 29 | icons constrained to a single cell, which is what a cell grid needs. | |
| 26 | 30 | Pango consumers (the bar, mako, swaylock) are not a cell grid and | |
| 27 | - | keep the plain family. --> | |
| 31 | + | keep the plain family. | |
| 32 | + | ||
| 33 | + | One entry, and that is the whole chain. If IosevkaTerm ever failed | |
| 34 | + | to install, monospace would not resolve to a second Alloy pick: it | |
| 35 | + | would drop straight into Fedora's generic rules (45-latin.conf, | |
| 36 | + | 60-latin.conf) and land on whatever those order first. The four | |
| 37 | + | Iosevka spellings that used to sit here were never in the image, so | |
| 38 | + | they described a fallback that did not exist. --> | |
| 28 | 39 | <alias> | |
| 29 | 40 | <family>monospace</family> | |
| 30 | 41 | <prefer> | |
| 31 | 42 | <family>IosevkaTerm Nerd Font Mono</family> | |
| 32 | - | <family>Iosevka Term</family> | |
| 33 | - | <family>Iosevka Nerd Font</family> | |
| 34 | - | <family>Iosevka</family> | |
| 35 | - | <family>DejaVu Sans Mono</family> | |
| 36 | 43 | </prefer> | |
| 37 | 44 | </alias> | |
| 38 | 45 | ||
| 39 | - | <!-- Sans-serif: Atkinson Hyperlegible --> | |
| 46 | + | <!-- Sans-serif: Atkinson Hyperlegible, then Cantarell. | |
| 47 | + | Cantarell is here because the image installs it, not as a design | |
| 48 | + | pick. Inter used to sit between them and is gone: it is not in the | |
| 49 | + | image either, so its only effect was to repoint the whole UI font | |
| 50 | + | for anyone who installed Inter for some unrelated app. Preferring | |
| 51 | + | Inter is still a supported swap, and it is an edit to this file | |
| 52 | + | (docs/STACK.md, "Sans"), not a side effect of having it on disk. --> | |
| 40 | 53 | <alias> | |
| 41 | 54 | <family>sans-serif</family> | |
| 42 | 55 | <prefer> | |
| 43 | 56 | <family>Atkinson Hyperlegible</family> | |
| 44 | - | <family>Inter</family> | |
| 45 | 57 | <family>Cantarell</family> | |
| 46 | - | <family>DejaVu Sans</family> | |
| 47 | 58 | </prefer> | |
| 48 | 59 | </alias> | |
| 49 | 60 | ||
| 50 | - | <!-- Serif: leave to system. Alloy declines to prescribe. --> | |
| 61 | + | <!-- Serif: Liberation Serif. | |
| 62 | + | Alloy has no serif thesis and reads nothing long in one. This names | |
| 63 | + | the serif the image already carries so the alias resolves somewhere | |
| 64 | + | known, which is a statement of fact rather than a design pick. The | |
| 65 | + | three Source Serif and DejaVu spellings that used to lead this list | |
| 66 | + | were not installed, so the file prescribed four families under a | |
| 67 | + | comment that said it declined to prescribe. --> | |
| 51 | 68 | <alias> | |
| 52 | 69 | <family>serif</family> | |
| 53 | 70 | <prefer> | |
| 54 | - | <family>Source Serif 4</family> | |
| 55 | - | <family>Source Serif Pro</family> | |
| 56 | 71 | <family>Liberation Serif</family> | |
| 57 | - | <family>DejaVu Serif</family> | |
| 58 | 72 | </prefer> | |
| 59 | 73 | </alias> | |
| 60 | 74 |