aboutsummaryrefslogtreecommitdiffstats
path: root/docs
AgeCommit message (Collapse)AuthorFilesLines
2026-09-16docs: add the GTK palette-consumer implementation planDanilo M.1-0/+831
GTK was listed in AGENTS.md as a covered consumer but nothing generated or installed a theme for it. Every GTK app sat on a hardcoded upstream catppuccin-macchiato-lavender while the rest of the desktop ran tokyo-night. The plan templates the upstream stylesheets and assets the way Kvantum already is, rendering into ~/.themes/udt under one fixed name per scheme. Substitution is whole-file rather than confined to the @define-color block: 338 palette hexes in GTK3 and 328 in GTK4 sit outside it, which was measured before the approach was chosen. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16refactor(cache): move the generated files to ~/.cache/udtDanilo M.1-1/+1
They lived in ~/.cache/wal because pywal owned that directory and udt-accent was written alongside a pywal run. Nothing on this desktop invokes pywal any more: the wal binary is unused, and udt-accent imports pywal.backends.colorz as a quantisation library, which writes nothing. Sharing the cache only left the ownership ambiguous. colors.json is the one file that cannot move. pywalfox hardcodes <cache>/wal/colors.json and honours only XDG_CACHE_HOME, which would relocate every cache on the system, so udt-accent writes the real file to ~/.cache/udt and install.sh symlinks the old path at it. ~/.cache/wal now holds that link and nothing else. Consumers repointed here: install.sh, udt-accent, launcher.rasi's @WPAPER@. Outside the repo, wallp, Hyprland's look_and_feel.lua and quickshell's shared/Theme.qml move with it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-16refactor(dunst): drop dunst as a consumer, quickshell presents nowDanilo M.1-1/+1
dunst no longer runs on this desktop. notifyd owns org.freedesktop.Notifications and the quickshell notifications shell draws the balloons, reading the palette from ~/.cache/wal/udt-palette.qml like every other quickshell component. So the whole dunst path was generating a config nothing read. It was also actively wrong. pywal rendered ~/.cache/wal/dunstrc from the installed template, then wal.sh restarted dunst on it while @ACCENT@ was still an unsubstituted placeholder, and udt-accent restarted it a second time after substituting. Two restarts per wallpaper change, the first on a broken config, for a daemon that could not claim the bus name anyway. Removes gen_dunst and its TARGETS entry, write_dunst and DUNSTRC, the install block, templates/dunstrc.in and the gitignore entry. The reload table now lists quickshell, which needs no signal: it watches the generated palette and re-reads it in place. The [state] roles stay. They were never dunst-only; waybar module states and conky warnings use the same four. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-11docs: note the CM_LAUNCHER removal alongside .xprofileDanilo M.1-3/+5
It configured clipmenu, the X11 clipboard manager .xprofile started. cliphist through rofi replaced it, so the export had nothing left to configure. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015gbjA2bmswN8jyPDKzrvqe
2026-09-11docs: record the deletion of ~/.xprofileDanilo M.1-0/+13
An X11 leftover nothing reads under Wayland. Nothing sources it, and every program it started is either not running or started elsewhere now (dunst, by udt-accent). Backed up to /data/udt-backup/xprofile. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015gbjA2bmswN8jyPDKzrvqe
2026-09-11docs: record the pinentry theming fix in MIGRATION.mdDanilo M.1-7/+39
The GPG PIN dialog was the last unthemed Qt6 app. pinentry-qt links Qt6 despite the name, but gpg-agent is spawned from .bashrc and reparented to init, so it never inherits the QT_QPA_PLATFORMTHEME that Hyprland sets for its own children, and every pinentry it spawns fell back to Fusion. Also restructures the document: it was headed "phase 1 (rofi)" and now covers more than rofi, so the phase is a section rather than the title. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015gbjA2bmswN8jyPDKzrvqe
2026-09-11docs: record archiving of the superseded rofi theme directoriesDanilo M.1-11/+19
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
2026-09-11docs: record the confirm dialog migration and glyph changeDanilo M.1-5/+11
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
2026-09-11docs: record phase 1 migration of rofi call sitesDanilo M.2-0/+68
Twelve call sites repointed, backups in /data/udt-backup. Also records three things found during the migration: rofipass was passing a -width flag that rofi 2.0.0 no longer has, the type-4 power menu reuses one directory variable for two different themes, and ddgr_search.py is a rofi script-mode plugin rather than a call site. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
2026-09-11docs: add headless parse checks and correct the rofi versionDanilo M.1-17/+52
The plan claimed rofi 1.7.3, taken from a stale comment header in the user's config.rasi. The installed version is 2.0.0. Adds a `-dump-theme` parse check to the palette and each layout task. This catches syntax errors without a display, which the plan previously treated as impossible and deferred entirely to visual inspection. Every theme file in the plan was verified to parse cleanly on 2.0.0. Replaces the palette verification step, which built a throwaway wrapper theme via printf just to have something that draws. A palette defines variables and renders nothing, so there was nothing to look at; parsing is the real check. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq
2026-09-11docs: correct accent pipeline premise and add implementation planDanilo M.2-39/+1217
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
2026-09-11docs: add unified desktop theme design specDanilo M.1-0/+200
Catppuccin Macchiato base with a pywal-driven accent snapped to the nearest named Macchiato accent. Phase 1 scope is rofi: collapse five theme systems into three shared layouts over one palette, covering eleven call sites. Records the four brainstorming decisions and the alternatives rejected, so later phases (waybar, dunst, kitty, conky, hyprland, quickshell) reuse the mechanism rather than relitigate it. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq