aboutsummaryrefslogtreecommitdiffstats
path: root/templates/qt-gtk/README.md
blob: c7c951bad44991cd21b9dc59dd423027e8c9e9e0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# Qt and GTK

Catppuccin Macchiato with a **lavender** accent, fixed rather than
wallpaper-tracking: Qt and GTK apps only pick up a theme change when they
restart, so a moving accent would leave running apps disagreeing with new ones.

Lavender is also `udt-accent`'s fallback, so anything without a wallpaper-derived
accent lands on the same colour.

## Upstream themes

Neither is generated by this repo; both are installed from upstream.

| | Theme | Source |
| --- | --- | --- |
| Qt5 + Qt6 | `catppuccin-macchiato-lavender` | `catppuccin/Kvantum` |
| GTK3 + GTK4 | `catppuccin-macchiato-lavender-standard+default` | `catppuccin/gtk` v1.0.3 |

`catppuccin/gtk` is **archived upstream**. v1.0.3 works and is what the
ecosystem uses, but it will not track future GTK4/libadwaita changes. Removing
it is just deleting the directory from `~/.themes`.

## Wiring

- **Qt5/Qt6**: `style=kvantum-dark` in both `qt5ct.conf` and `qt6ct.conf`, with
  `custom_palette=false` so Kvantum supplies the palette. Previously the two
  disagreed: qt5ct used a hand-rolled grey/purple scheme and qt6ct used
  `/usr/share/qt6ct/colors/darker.conf`.
- **GTK3**: the theme name has to be set with **gsettings**, not just
  `settings.ini`. On Wayland gsettings wins, and it was pinned to `Breeze`,
  which silently overrode the file. `icon-theme` was likewise stuck on
  `breeze-dark` while `settings.ini` said `Material-Black-Plum-Suru`.
- **GTK4**: libadwaita ignores `gtk-theme-name`, so `~/.config/gtk-4.0/theme`
  is a symlink to the theme's `gtk-4.0` directory and `gtk.css` imports it.

## Reproducing

    gsettings set org.gnome.desktop.interface gtk-theme 'catppuccin-macchiato-lavender-standard+default'
    gsettings set org.gnome.desktop.interface icon-theme 'Material-Black-Plum-Suru'
    gsettings set org.gnome.desktop.interface color-scheme 'prefer-dark'