|
Investigation while planning showed the spec's accent model could not work as
written. wallp invokes pywal with --theme, not -i, so colors come from a fixed
preset and never track the wallpaper: snapping would have mapped a constant to
a constant.
The obvious fix, switching to wallpaper-derived pywal, would have regressed a
problem the user had already solved. Wallpaper colors land in kitty's sixteen
ANSI slots, where nothing guarantees color4 stays legible against color0, which
is what made neovim comments disappear. Rofi is not exposed to that, since it
uses one accent against a fixed base.
So extraction now calls pywal.backends.colorz.get() directly. It returns a list
and writes nothing, leaving the preset cache that kitty, dunst and neovim read
untouched. Verified across six wallpapers with colors.json byte-identical after.
Also replaces HLS hue matching with CIELAB, after prototyping showed HLS
snapping orange to yellow and red to flamingo, and narrows the candidate set to
nine accents, dropping near-neutral tints and duplicate hues that captured
saturated inputs.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
|