Files
justmeandClaude Sonnet 5.5 b97a55ac75 Add libmonet: Material 3 style schemes and where to get the seed from
A header only C++20 library. One seed colour gives a complete Material 3 style
scheme, light or dark, with the tones, roles and contrast guarantees of the
baseline scheme, computed in OKLCH as a light weight stand in for HCT.

The seed colour and the light or dark preference come from a chain of sources:
an environment override, the XDG desktop portal (GNOME 47+ and KDE Plasma 6),
kdeglobals on KDE, gsettings on GNOME, GTK settings, and a fallback that is
always appended and cannot be left out. Desktop specific sources are only asked
on their own desktop, so a stale gsettings value on KDE never wins. Programs can
put sources of their own in front.

The tests run without a desktop through a fake Context. They cover colour
conversions, tone accuracy, the contrast of every role pair over 300 random
seeds in both modes, every parser against real portal output, the order of the
sources per desktop, the fallback and external program timeouts. The test suite
was checked by breaking the code 22 ways, all are caught.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 00:14:10 +08:00

3 lines
13 B
Plaintext