Skip to main content

max / shop

README: the config file and the theme it takes
Author: Max Johnson <me@maxj.phd> · 2026-07-31 15:04 UTC
Signed with PGP, not checked
Commit: 39adc0fea796cf414ed98528b45fc98bc9964596
Parent: 461cbc5
1 file changed, +24 insertions, -0 deletions
M README.md +24
@@ -26,6 +26,30 @@
26 26 and `shop-sixel` are not written yet; each crate is added as its component
27 27 is implemented. See design hub.
28 28
29 + ## Config
30 +
31 + `~/.config/shop/config.toml`, two keys, both optional:
32 +
33 + ```toml
34 + # A theme id, without the .toml. Defaults to akari-night, which shop carries
35 + # with it: makeover embeds its own theme set, so this works on a machine with
36 + # no theme files installed anywhere.
37 + theme = "akari-dawn"
38 +
39 + # An extra directory to search first. An Alloy machine points this at the
40 + # desktop's own set; shop does not otherwise know Alloy exists.
41 + themes = "/usr/share/alloy/themes"
42 + ```
43 +
44 + Themes are [makeover](https://makenot.work/git/max/makeover) TOML files, which
45 + declare colours by role rather than by hue. shop resolves the sixteen ANSI
46 + slots from them through `makeover::ansi_intent`, the same mapping the bare
47 + Linux console and Alloy's generated configs use, so a program's output does not
48 + change colour depending on where it runs. 16-255 are fixed by the protocol and
49 + are not the theme's to move.
50 +
51 + `shop --theme ID` overrides the file for one run.
52 +
29 53 ## Non-goals
30 54
31 55 - Cross-platform. Wayland Linux only. No X11, no macOS, no Windows.