fix(theme): install the GTK theme at all, and make it Mocha

Two defects, found while porting moonix's switch back.

Nothing installed a GTK theme. settings.ini named
Colloid-Grey-Dark-Catppuccin and the PKGBUILD symlinked
/usr/share/themes/Colloid-Grey-Dark-Catppuccin/gtk-4.0/ into /etc/xdg, but
no package in either list ships it: colloid-catppuccin-theme-git is a split
package of colloid-icon-theme-git running `install.sh -s catppuccin`, which
installs icons only, and kvantum-theme-catppuccin-git is Qt. A fresh
install got Adwaita and three dangling symlinks. post-install.sh already
had the error branch for this — "GTK4 theme not found … libadwaita apps
will use fallback theme" — firing on every fresh machine.

The package name is what hid it: colloid-catppuccin-theme-git reads like a
GTK theme and is an icon set. aur.txt now says so in a comment, and the
icon entry stays — there is no Mocha icon counterpart and none is needed.

The theme was also never Mocha. Colloid's catppuccin tweak produces Frappé
with a grey accent (base #292c3c, selection #ccd0da); #1e1e2e and #b4befe
appear nowhere in its gtk.css. Kvantum, Zed and the lock screen were all
Mocha, so GTK was the one layer out of step, unnoticed because the two dark
bases sit close together.

catppuccin-gtk-theme-mocha is maintained by Catppuccin itself and ships the
upstream 1.0.3 release zips. No change in shape: their GTK theme is
Colloid, carried as a git submodule and recolored, so widget shapes and
spacing are exactly what they were.

The name will not match moonix, ever. Arch installs the release zips, whose
directories carry the full build name including the +default tweak marker;
nixpkgs builds the same 1.0.3 from source without tweaks and drops the
suffix. moonix therefore keeps rewriting this one value when it deploys
settings.ini — a permanent difference now, not a migration step.
This commit is contained in:
nevaforget committed 2026-09-12 02:25:00 +02:00
1 parent 8d31ff26e0
commit 33d1cf017f
8 files changed
+23 -6

No files matched your search

+1 -1
View File
@@ -158,7 +158,7 @@ System-wide generic-family defaults via `defaults/etc/fonts/conf.d/65-moonarch-f
## Qt Theming (Catppuccin via Kvantum)
Qt apps (e.g. VLC) get the Catppuccin Mocha look via the **Kvantum** style engine — GTK theming (Colloid) does not cover Qt, and the Qt5 GTK-follow path (`qt5-styleplugins`) is unmaintained and not in the official repos.
Qt apps (e.g. VLC) get the Catppuccin Mocha look via the **Kvantum** style engine — GTK theming does not cover Qt, and the Qt5 GTK-follow path (`qt5-styleplugins`) is unmaintained and not in the official repos.
- **Style — `QT_STYLE_OVERRIDE=kvantum` is the workhorse.** A single value themes **both Qt5 (VLC 3) and Qt6**. `QT_QPA_PLATFORMTHEME` cannot: one value selects either the Qt5 `qt5ct` plugin or the Qt6 `qt6ct` plugin, never both. The style override sidesteps that, so we ship `kvantum` + `kvantum-qt5` (Qt6 + Qt5 style plugins) and **skip `qt5ct`**.
- **Theme:** `kvantum-theme-catppuccin-git` (AUR) installs all flavors to `/usr/share/Kvantum/`; `defaults/xdg/Kvantum/kvantum.kvconfig` selects `catppuccin-mocha-lavender` (matches the ecosystem Lavender accent `#b4befe`).
+8
View File
@@ -1,5 +1,13 @@
# Decisions
## 2026-09-12 – GTK theme: the package was never installed, and it was never Mocha
- **Who**: Dominik, ClaudeCode
- **Why**: Two separate defects, found while porting moonix's Mocha switch back. (1) **Nothing installed a GTK theme at all.** `settings.ini` named `Colloid-Grey-Dark-Catppuccin` and the PKGBUILD symlinked `/usr/share/themes/Colloid-Grey-Dark-Catppuccin/gtk-4.0/` into `/etc/xdg`, but no package in either list ships it: `colloid-catppuccin-theme-git` is a split package of `colloid-icon-theme-git` running `install.sh -s catppuccin`, which installs **icons only**, and `kvantum-theme-catppuccin-git` is Qt. A fresh install therefore got Adwaita and three dangling symlinks. `post-install.sh` even had the error branch for it — "GTK4 theme not found … libadwaita apps will use fallback theme" — which fires on every fresh machine and was read as noise. (2) **The theme was never Mocha.** Colloid's `catppuccin` tweak produces Frappé with a grey accent (base `#292c3c`, selection `#ccd0da`); `#1e1e2e` and `#b4befe` appear nowhere in its `gtk.css`. Kvantum, Zed and the lock screen were all Mocha, so GTK was the one layer out of step — invisible because the two dark bases sit close together.
- **Tradeoffs**: (1) **Which package** — `catppuccin-gtk-theme-mocha`, maintained by Catppuccin itself, shipping the upstream 1.0.3 release zips for all fourteen accents. The alternative was building Colloid from source with the catppuccin tweak, which is what produced Frappé in the first place. No loss in shape either way: Catppuccin's GTK theme *is* Colloid — it carries `vinceliuice/Colloid-gtk-theme` as a git submodule and only recolors it, so widget shapes, radii and spacing are unchanged. (2) **Icons stay Colloid** — `colloid-catppuccin-theme-git` keeps its entry; it is the icon set and has no Mocha counterpart. Its name reads like a GTK theme, which is what hid defect (1); the list now says so in a comment. (3) **The name will not match moonix, ever** — Arch installs the release zips, whose directories carry the full build name including the `+default` tweak marker: `catppuccin-mocha-lavender-standard+default`. nixpkgs builds the same 1.0.3 from source with no tweaks and names it `catppuccin-mocha-lavender-standard`. Neither side can take the other's name without going out of its way, so moonix keeps rewriting this one value when it deploys `settings.ini` — no longer a migration measure but a permanent difference, and documented as such on both sides. (4) **Why the rewrite matters at all** — GTK3 reads `settings.ini` directly, and the dconf entry only reaches applications that ask GSettings, which on Wayland the GTK3 ones do not. A name that does not resolve puts every GTK3 application on Adwaita silently, which is precisely defect (1).
- **How**: `packages/aur.txt` gains `catppuccin-gtk-theme-mocha`, with comments recording what each of the two theme packages actually provides. Theme name updated in `defaults/xdg/gtk-3.0/settings.ini`, `gtk-4.0/settings.ini`, `defaults/etc/greetd/regreet.toml`, `scripts/post-install.sh` (`THEME_NAME`) and the three GTK4 symlinks in the PKGBUILD. `README.md` and `CLAUDE.md` follow. In moonix, `gtkSettings` now rewrites the new name instead of the Colloid one, with the comment rewritten to say the rewrite is permanent.
- **Worth checking on the next fresh install**: that `post-install.sh` no longer takes its "GTK4 theme not found" branch. That message firing is the signal that the theme package is missing again.
## 2026-09-11 – gtklock replaces swaylock
- **Who**: Dominik, ClaudeCode
+1 -1
View File
@@ -25,7 +25,7 @@ desktop that can be rebuilt from scratch in minutes.
| **Display Management** | [kanshi](https://sr.ht/~emersion/kanshi/) + [wdisplays-persistent](https://github.com/sfs-pra/wdisplays) | kanshi auto-switches output profiles on hotplug. wdisplays-persistent saves changes directly to kanshi config. |
| **Notifications** | [swaync](https://github.com/ErikReider/SwayNotificationCenter) | GTK4 notification daemon with DND toggle, grouping, MPRIS support. Fractional scaling via native GTK4. |
| **Clipboard** | [cliphist](https://github.com/sentriz/cliphist) + quickshell | Clipboard history stored in runtime dir, wiped on session start. The quickshell bar provides the picker (`Super+C`) with search, image thumbnails, and per-entry delete. |
| **GTK Theme** | Colloid-Grey-Dark-Catppuccin | Catppuccin Mocha palette, grey accent, explicit dark variant. |
| **GTK Theme** | catppuccin-mocha-lavender-standard+default | Catppuccin Mocha with the Lavender accent, matching Kvantum and the lock screen. Catppuccin's GTK theme is Colloid recolored -- it carries vinceliuice's theme as a submodule -- so the widget shapes are unchanged from before. |
| **Icons** | Colloid-Grey-Catppuccin-Dark | Catppuccin-colored icon set matching the GTK theme. |
| **Cursor** | Sweet-cursors | Visible on dark backgrounds without clashing. |
| **Font** | UbuntuSans Nerd Font | Clean sans-serif with full Nerd Font glyph coverage for bar/terminal icons. |
+1 -1
View File
@@ -10,7 +10,7 @@ application_prefer_dark_theme = true
cursor_theme_name = "Sweet-cursors"
font_name = "UbuntuSans Nerd Font 12"
icon_theme_name = "Colloid-Grey-Catppuccin-Dark"
theme_name = "Colloid-Grey-Dark-Catppuccin"
theme_name = "catppuccin-mocha-lavender-standard+default"
[commands]
reboot = ["systemctl", "reboot"]
+1 -1
View File
@@ -2,7 +2,7 @@
# ABOUTME: User overrides go in ~/.config/gtk-3.0/settings.ini
[Settings]
gtk-theme-name=Colloid-Grey-Dark-Catppuccin
gtk-theme-name=catppuccin-mocha-lavender-standard+default
gtk-icon-theme-name=Colloid-Grey-Catppuccin-Dark
gtk-font-name=UbuntuSans Nerd Font 11
gtk-cursor-theme-name=Sweet-cursors
+1 -1
View File
@@ -2,7 +2,7 @@
# ABOUTME: User overrides go in ~/.config/gtk-4.0/settings.ini
[Settings]
gtk-theme-name=Colloid-Grey-Dark-Catppuccin
gtk-theme-name=catppuccin-mocha-lavender-standard+default
gtk-icon-theme-name=Colloid-Grey-Catppuccin-Dark
gtk-cursor-theme-name=Sweet-cursors
gtk-cursor-theme-size=24
+9
View File
@@ -5,6 +5,15 @@
# paru
# Theming
# GTK widgets. Maintained by Catppuccin itself; ships the upstream release
# zips, so the theme directory carries the full build name including the
# `+default` tweak marker. NixOS builds the same 1.0.3 from source without
# tweaks and therefore names it without that suffix -- moonix rewrites this
# name when it deploys the settings.ini, and has to keep doing so.
catppuccin-gtk-theme-mocha
# Icons only, despite the name: a split package of colloid-icon-theme-git
# running `install.sh -s catppuccin`. It installs nothing under
# /usr/share/themes, which is why the GTK theme above has to be its own entry.
colloid-catppuccin-theme-git
kvantum-theme-catppuccin-git
+1 -1
View File
@@ -87,7 +87,7 @@ fi
# --- User-level GTK4 symlinks for libadwaita apps ---
THEME_NAME="Colloid-Grey-Dark-Catppuccin"
THEME_NAME="catppuccin-mocha-lavender-standard+default"
THEME_GTK4="/usr/share/themes/$THEME_NAME/gtk-4.0"
if [[ -d "$THEME_GTK4" ]]; then