Context
.chezmoiscripts/run_after_32_fonts.sh.tmpl is 71 lines that install JetBrainsMono and FiraCode Nerd Fonts on Linux by downloading upstream release archives with curl, unzipping into ~/.local/share/fonts/NerdFonts, and running fc-cache. It carries a hand-pinned NERD_FONTS_VERSION kept current by a # renovate: comment.
It exists because Homebrew font casks only populate the Caskroom and never reach fontconfig on Linux — so the cask approach used on macOS (Brewfile.system.darwin) doesn't work there. That finding is still believed correct and is not what's in question here.
What prompted this
The PoC in #747 replaced this script with two brew-cask: entries under mise's [bootstrap.packages], on the basis that mise is not shelling out to brew --cask — it writes font files directly into $XDG_DATA_HOME/fonts. In a throwaway Ubuntu 24.04 pod that produced 114 .ttf files in ~/.local/share/fonts/ with fontconfig picking them up, and a second run was a no-op.
That work is not being carried forward. PR #748 was closed unmerged, and the repo owner is not convinced the approach is sound enough to adopt on that evidence. This ticket exists so the question isn't silently dropped — not as a commitment to the PoC's design.
No urgency, and no strong value either way. The current script works. The upside is deleting 71 lines of bespoke download/unzip/cache logic plus a hand-pinned version; the downside is depending on a mise mechanism that is weeks old and, in the PoC, needed a conf.d per-OS overlay plus a mise bootstrap packages apply call to work at all.
If picked up
Evaluate fresh rather than resurrecting the PoC's shape:
- Does mise's
brew-cask: font path hold up outside a clean pod — on an established machine, across a font version bump, and against fc-cache behaviour with an existing NerdFonts/ directory from the current script?
- What is the minimum machinery? The PoC needed a Linux-only
conf.d overlay because [bootstrap.packages] has no per-entry OS filter, and macOS already installs these fonts via Brewfile.system.darwin — so a shared entry would double-install. Is a whole per-OS overlay mechanism worth it for two lines?
- Are there alternatives that don't involve mise at all — e.g. keeping the script but simplifying it, or an apt/distro path.
- Whatever is chosen: preserve the reasoning that Homebrew casks don't reach fontconfig on Linux. If a future reader sees a cask-flavoured approach working and concludes the original investigation was wrong, it wasn't — mise just isn't using
brew.
References
Deliberately not linked as a sub-issue of #746 — this is standalone work, independent of that effort's direction.
Context
.chezmoiscripts/run_after_32_fonts.sh.tmplis 71 lines that install JetBrainsMono and FiraCode Nerd Fonts on Linux by downloading upstream release archives withcurl, unzipping into~/.local/share/fonts/NerdFonts, and runningfc-cache. It carries a hand-pinnedNERD_FONTS_VERSIONkept current by a# renovate:comment.It exists because Homebrew font casks only populate the Caskroom and never reach fontconfig on Linux — so the cask approach used on macOS (
Brewfile.system.darwin) doesn't work there. That finding is still believed correct and is not what's in question here.What prompted this
The PoC in #747 replaced this script with two
brew-cask:entries under mise's[bootstrap.packages], on the basis that mise is not shelling out tobrew --cask— it writes font files directly into$XDG_DATA_HOME/fonts. In a throwaway Ubuntu 24.04 pod that produced 114.ttffiles in~/.local/share/fonts/with fontconfig picking them up, and a second run was a no-op.That work is not being carried forward. PR #748 was closed unmerged, and the repo owner is not convinced the approach is sound enough to adopt on that evidence. This ticket exists so the question isn't silently dropped — not as a commitment to the PoC's design.
No urgency, and no strong value either way. The current script works. The upside is deleting 71 lines of bespoke download/unzip/cache logic plus a hand-pinned version; the downside is depending on a mise mechanism that is weeks old and, in the PoC, needed a
conf.dper-OS overlay plus amise bootstrap packages applycall to work at all.If picked up
Evaluate fresh rather than resurrecting the PoC's shape:
brew-cask:font path hold up outside a clean pod — on an established machine, across a font version bump, and againstfc-cachebehaviour with an existingNerdFonts/directory from the current script?conf.doverlay because[bootstrap.packages]has no per-entry OS filter, and macOS already installs these fonts viaBrewfile.system.darwin— so a shared entry would double-install. Is a whole per-OS overlay mechanism worth it for two lines?brew.References
conf.d/linux.toml,apply_bootstrap_packagesinscript_mise.sh,Brewfile.system.linuxcomment)Deliberately not linked as a sub-issue of #746 — this is standalone work, independent of that effort's direction.