<feed xmlns='http://www.w3.org/2005/Atom'>
<title>archsetup/docs/prototypes/gen_tokens.py, branch main</title>
<subtitle>Builds a full dev workstation from a bare Arch Linux install.
</subtitle>
<id>https://git.cjennings.net/archsetup/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/archsetup/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/'/>
<updated>2026-07-12T04:52:49+00:00</updated>
<entry>
<title>refactor(gallery): rename generated tokens.el to gallery-tokens.el</title>
<updated>2026-07-12T04:52:49+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-12T04:52:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=b0ca38bc98f240e208edd08009856ab6de62c227'/>
<id>urn:sha1:b0ca38bc98f240e208edd08009856ab6de62c227</id>
<content type='text'>
The generated file declares (provide 'gallery-tokens), but `require` resolves a feature by filename, so as tokens.el it could never load from a load-path. The name now matches the feature. gen_tokens.py, the renderer's load, and the README follow.
</content>
</entry>
<entry>
<title>refactor(gallery): extract design tokens to one source for 3 targets</title>
<updated>2026-07-12T04:36:51+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-12T04:36:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=440877965e8879f3c9567cf923b7c65c0eee227c'/>
<id>urn:sha1:440877965e8879f3c9567cf923b7c65c0eee227c</id>
<content type='text'>
The colors, glows, gradient ramp, and pulse rate were hardcoded literals scattered across ~40 sites in the gallery. Retuning the amber meant a find-and-replace through the whole file. I pulled them into tokens.json as the single source.

gen_tokens.py reads that source and emits three targets: web CSS custom properties (into the gallery :root, between markers), waybar GTK @define-color declarations, and an elisp alist for the future svg.el renderer. The three genuinely differ (CSS --vars with rgb-triple glows, GTK @define-color with underscore names, elisp hex alist), which is why one generator beats three hand-maintained copies.

The amber hue is defined once, and its glow triples are derived from the hex, so retuning it means editing one line and rerunning the generator.

The gallery render is unchanged. I verified it pixel-identical against the prior commit with reduced-motion forced and the live clock masked (diff of 0).

Tests cover hex conversion, the three emitters, marker replacement, and idempotency: 27 tests, 100% line coverage, wired into make test-unit.
</content>
</entry>
</feed>
