diff options
| author | Danilo M. <danix@danix.xyz> | 2026-09-11 16:30:21 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-09-11 16:30:21 +0200 |
| commit | 842f25460ba7034e8828e37b9e9431d5a2d11afa (patch) | |
| tree | a054ed06a6a102fb9dd35123ce1884c3c9aa81bc /AGENTS.md | |
| parent | dc4e324522acfdfbc661ae95089c96854eca6eb0 (diff) | |
| download | unified-desktop-theme-842f25460ba7034e8828e37b9e9431d5a2d11afa.tar.gz unified-desktop-theme-842f25460ba7034e8828e37b9e9431d5a2d11afa.zip | |
feat(accent): generate a QML palette for quickshell
udt-accent now writes ~/.cache/wal/udt-palette.qml alongside the accent,
border and colors.json it already produced. Quickshell components read it
and watch it, so editing the palette here recolours a running shell
without restarting it.
Unlike the other outputs this one is not only the accent: it carries the
structural colours too. Those are parsed out of rofi/udt/palette.rasi
rather than restated in the script, so that file stays the single place
the Macchiato values are written down. Hardcoding them a second time
here is exactly the drift this is meant to remove: the quickshell
components each had their own copy before this.
The atomic write that write_border already did by hand is now a helper,
write_atomic, used by both. Every generated file is watched by something,
and a torn read shows up as a theme that briefly loses its colours.
colors.json is untouched by this change, verified by running the script
before and after and comparing.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01G7NRsGyF9jGfPYS4zPqpN7
Diffstat (limited to 'AGENTS.md')
| -rw-r--r-- | AGENTS.md | 13 |
1 files changed, 10 insertions, 3 deletions
@@ -19,10 +19,17 @@ One colour moves: `@accent`. `bin/udt-accent` reads the current wallpaper, extracts its signature colour, and snaps it to the nearest of ten Catppuccin accents by perceptual hue in CIELAB. `wallp` calls it on every wallpaper change. -It writes four things: `~/.cache/wal/udt-accent.rasi` (rofi), +It writes five things: `~/.cache/wal/udt-accent.rasi` (rofi), `~/.cache/wal/udt-border.lua` (Hyprland), the accent substitution in -`~/.cache/wal/dunstrc`, and `~/.cache/wal/colors.json` (Firefox, via -pywalfox). +`~/.cache/wal/dunstrc`, `~/.cache/wal/colors.json` (Firefox, via +pywalfox), and `~/.cache/wal/udt-palette.qml` (quickshell). + +The QML palette is the one output that is not only the accent: it carries +the whole structural palette too, parsed out of `rofi/udt/palette.rasi` +rather than duplicated in the script. That file stays the single place the +Macchiato values are written down. Quickshell components watch the generated +file and re-read it in place, so a palette edit reaches a running shell +without restarting it; see the `quickshell` repo alongside this one. **Extraction is deliberately isolated from the pywal cache.** It calls `pywal.backends.colorz.get()` directly, which returns a list and writes nothing. |
