diff options
| author | Craig Jennings <c@cjennings.net> | 2026-07-02 13:20:24 -0400 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-07-02 13:20:24 -0400 |
| commit | 8a93f68c10770c592468862dc9ec08386b291447 (patch) | |
| tree | 2008a9fc1b9632d37ff4310809241253348e76ed /scripts/theme-studio/face_data.py | |
| parent | 616aa431e31d35623c0a250bb39da12cd24529f6 (diff) | |
| download | dotemacs-8a93f68c10770c592468862dc9ec08386b291447.tar.gz dotemacs-8a93f68c10770c592468862dc9ec08386b291447.zip | |
feat(theme-studio): pin retired packages so themes keep covering them
PINNED_PACKAGE_FACES is the curated record of packages retired from the config (ghostel, all-the-icons). A pinned package survives inventory regeneration, shows a 'not loaded' label + hover in the app dropdown, and keeps refreshing its face list from the live inventory while that still carries it. An attempted live regen made the fragility concrete: today's daemon session was missing 142 faces from lazily-loaded packages, so regen-from-live is inherently lossy and the pin is the only durable record.
Diffstat (limited to 'scripts/theme-studio/face_data.py')
| -rw-r--r-- | scripts/theme-studio/face_data.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/scripts/theme-studio/face_data.py b/scripts/theme-studio/face_data.py index e2fa7c1d..e86d7e75 100644 --- a/scripts/theme-studio/face_data.py +++ b/scripts/theme-studio/face_data.py @@ -415,6 +415,34 @@ BESPOKE_APP_SPECS=[ ("shr","simple html renderer (shr)","shr",SHR_FACES,"shr-",SHR_SEED), ] +# Ecosystem coverage pins (see README.md "Coverage policy"). The studio themes +# popular packages even when this config no longer installs them, so a theme +# built here still covers the wider ecosystem. package-inventory.json is +# regenerated from the running Emacs and silently drops anything uninstalled; +# every package listed here survives that. When a pinned package IS in the live +# inventory, the live face list wins (it may have grown); when absent, the app +# is built from this pin and marked "not loaded" in the UI. When retiring a +# package from the config, add its inventory face list here first. +PINNED_PACKAGE_FACES={ + "ghostel":[ + "ghostel-color-black","ghostel-color-blue","ghostel-color-bright-black", + "ghostel-color-bright-blue","ghostel-color-bright-cyan","ghostel-color-bright-green", + "ghostel-color-bright-magenta","ghostel-color-bright-red","ghostel-color-bright-white", + "ghostel-color-bright-yellow","ghostel-color-cyan","ghostel-color-green", + "ghostel-color-magenta","ghostel-color-red","ghostel-color-white", + "ghostel-color-yellow","ghostel-default","ghostel-fake-cursor","ghostel-fake-cursor-box"], + "all-the-icons":[ + "all-the-icons-blue","all-the-icons-blue-alt","all-the-icons-cyan","all-the-icons-cyan-alt", + "all-the-icons-dblue","all-the-icons-dcyan","all-the-icons-dgreen","all-the-icons-dmaroon", + "all-the-icons-dorange","all-the-icons-dpink","all-the-icons-dpurple","all-the-icons-dred", + "all-the-icons-dsilver","all-the-icons-dyellow","all-the-icons-green","all-the-icons-lblue", + "all-the-icons-lcyan","all-the-icons-lgreen","all-the-icons-lmaroon","all-the-icons-lorange", + "all-the-icons-lpink","all-the-icons-lpurple","all-the-icons-lred","all-the-icons-lsilver", + "all-the-icons-lyellow","all-the-icons-maroon","all-the-icons-orange","all-the-icons-pink", + "all-the-icons-purple","all-the-icons-purple-alt","all-the-icons-red","all-the-icons-red-alt", + "all-the-icons-silver","all-the-icons-yellow"], +} + # Hover text for foundational/reused apps: names what consumes these faces, so # the app label can stay clean and the "who reuses this" context rides the app # dropdown's tooltip instead. Apps not listed here get no hover. |
