From f6ee56d57435ad6b3e11c28ee81a41fffbeca03b Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Fri, 11 Sep 2026 10:52:07 +0200 Subject: feat: unify Qt5, Qt6 and GTK on Macchiato with a lavender accent Installs the upstream Catppuccin Kvantum and GTK themes and points all four toolkits at them. Qt5 and Qt6 previously disagreed with each other as well as with the desktop: qt5ct carried a hand-rolled grey/purple palette and qt6ct used the stock darker.conf. Both now take their palette from Kvantum. Two things were not where they looked. GTK3's theme comes from gsettings on Wayland, not settings.ini, and gsettings was pinned to Breeze, which silently overrode the file; its icon-theme was likewise on breeze-dark while settings.ini said Material-Black-Plum-Suru. GTK4 ignores gtk-theme-name entirely, so its stylesheet is symlinked into ~/.config/gtk-4.0 instead. The accent is fixed rather than wallpaper-tracking, since Qt and GTK apps only reread a theme on restart. Lavender also replaces mauve as udt-accent's fallback so everything without a wallpaper-derived accent agrees. catppuccin/gtk is archived upstream. v1.0.3 works today but will not track future libadwaita changes; it is removable by deleting the directory. The tracked qt5ct/qt6ct files carry only the theme-relevant keys: the live files also hold an ignored_applications list of local paths. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01G6aeE37K4GHBsaM51yLTTq --- bin/udt-accent | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) (limited to 'bin') diff --git a/bin/udt-accent b/bin/udt-accent index 978f340..e88a512 100755 --- a/bin/udt-accent +++ b/bin/udt-accent @@ -19,12 +19,15 @@ import sys import tempfile from pathlib import Path -# The nine candidate accents. rosewater and flamingo are excluded as -# near-neutral tints that capture saturated inputs; maroon, sapphire and -# lavender are excluded as near-duplicate hues of red, sky and mauve. +# The candidate accents. rosewater and flamingo are excluded as near-neutral +# tints that capture saturated inputs, and maroon and sapphire as near-duplicate +# hues of red and sky. lavender sits close to mauve but is kept: it is the +# desktop-wide fallback, used by Qt, GTK and anything else that needs one fixed +# accent, so it has to be a value snap() can also return. ACCENTS = { - "pink": "#f5bde6", - "mauve": "#c6a0f6", + "pink": "#f5bde6", + "mauve": "#c6a0f6", + "lavender": "#b7bdf8", "red": "#ed8796", "peach": "#f5a97f", "yellow": "#eed49f", @@ -34,7 +37,7 @@ ACCENTS = { "blue": "#8aadf4", } -FALLBACK = "mauve" +FALLBACK = "lavender" MIN_CHROMA = 10.0 OUTPUT = Path.home() / ".cache" / "wal" / "udt-accent.rasi" @@ -226,6 +229,7 @@ def selftest(): # A near-grey has an unstable hue angle and must take the fallback. assert snap("#888888") == FALLBACK, snap("#888888") + assert FALLBACK in ACCENTS, FALLBACK # Border neighbours must be distinct from the accent and from each other, # or the gradient has nothing to animate between. -- cgit v1.2.3