Skip to main content

Usage

Run

python generate_theme.py

That's the entire invocation surface — there are no flags. The script reads every *.txt palette file under palettes/ and writes a matching theme set under themes/, printing one line per palette:

OK python
OK rust
SKIP broken-palette.txt: only 5 colors
...

42 theme sets -> themes/

Input format

Palette files are the raw output of ImageMagick's -unique-colors txt: export (the same files AptlantisLogos produces) — UTF-16 LE or UTF-8 text listing up to 16 colors per source logo. A palette needs at least 8 usable colors to generate a theme set; anything below that is skipped rather than padded or guessed.

Packaging the VSCode extension

The generated themes/vscode/apt-themes-extension/ folder is a real, packageable VSCode extension containing every generated VSCode theme as an entry in its package.json. Packaging into a .vsix requires Node and vsce:

cd themes/vscode/apt-themes-extension
npx vsce package

Regenerating after a palette changes

There's no incremental mode — re-running generate_theme.py regenerates every theme set from scratch each time. Given it's driven entirely by AptlantisLogos' palettes/ output, the normal workflow is: update or add a logo in AptlantisLogos, re-extract its palette, then re-run this script to refresh all themes at once.