v1.1.7
Icons on every module
Six of the fourteen rows drew a label with no icon — Kernel, Terminal, CPU,
GPU Driver and Memory, plus the title line. This release fixes that, and fixes the
reason it was reachable.
What was actually wrong
The icons were never coming from FastFetch Studio. They came from a hand-written config at
%APPDATA%\fastfetch\config.jsonc that typed a private-use glyph into the key of eight
modules and left the other six bare. That file only ever rendered because Studio was not
producing a config of its own:
Apply & Generatewrotethemes\and the launcher but neverconfig.jsonc, even
though the module docstring promised it and the backup step already existed for it.- The launcher only passes
--config <theme>whenthemes\actually contains files, and
the Random tab's toggles rewrote the launcher without generating those themes.
With no themes and no config.jsonc, fastfetch fell through its search path and drew
whatever else it found — a config with a different module list and only some of the icons.
What changed
- Icons now come from fastfetch itself. The generated config switches on
display.key.type, and fastfetch fills in its own per-typekeyIcondefault. No glyph is
written into any label, so adding a module can never leave a row icon-less — the
hand-maintained list is what rotted in the first place. A glyph in akeystring is now
explicitly wrong: with key icons on it renders a second icon beside the default. - The three spaces each label carried as a manual indent moved to
display.key.paddingLeft,
and the title label became fastfetch's whitespace "no key" sentinel — it stays a bare
user @ host, and the stray:it used to print is gone. Apply & Generatenow writesconfig.jsonc, and the Random tab's toggles regenerate
the config and themes alongside the launcher they rewrite.
Verification
- All 13 labeled rows now render an icon, on both the launcher's
--configpath and a
barefastfetch— checked against fastfetch 2.64.2. - New
--smoke-iconsguard, wired into both CI jobs. It asserts the config shape always,
and — where fastfetch is present — that every keyed row actually draws a private-use
glyph. It fails on the old code, on a glyph sneaking back into a label, and on the
padding reverting.
Full Changelog: v1.1.6...v1.1.7