nexoniarz-config-nixos/modules/theme.nix
2026-08-30 01:26:52 +02:00

35 lines
1.6 KiB
Nix

{ config, pkgs, lib, ... }:
{
# Dark GTK theme (built into GTK3/4's Adwaita since 3.20) for Thunar and
# other GTK apps, as a starting point. The actual palette (accent color,
# dark/light) is no longer static here — it's generated at runtime by
# gtk-theme-set (modules/scripts/gtk-theme-set.sh), called from the
# Quickshell Theme picker (dotfiles/quickshell/Theme.qml) every time the
# theme changes, so switching accent/mode there actually reaches GTK
# apps instead of requiring a rebuild.
environment.systemPackages = with pkgs; [
gnome-themes-extra
adwaita-icon-theme
gruvbox-plus-icons
dconf
];
# No environment.sessionVariables.GTK_THEME here on purpose: GTK_THEME
# takes priority over settings.ini's gtk-theme-name for GTK3 apps, and
# as a session env var it's fixed at login — it can't be changed live.
# A leftover "Adwaita:dark" override here was silently overriding
# whatever gtk-theme-set wrote to settings.ini, permanently forcing
# dark mode and blocking the Theme picker from ever reaching Thunar.
systemd.tmpfiles.rules = [
"d /home/nexoniarz/.config/gtk-3.0 0755 nexoniarz users -"
"d /home/nexoniarz/.config/gtk-4.0 0755 nexoniarz users -"
# `f`, not `L+`: created empty only if missing, never overwritten on
# rebuild — gtk-theme-set owns the actual content from here on.
"f /home/nexoniarz/.config/gtk-3.0/gtk.css 0644 nexoniarz users - -"
"f /home/nexoniarz/.config/gtk-4.0/gtk.css 0644 nexoniarz users - -"
"f /home/nexoniarz/.config/gtk-3.0/settings.ini 0644 nexoniarz users - -"
"f /home/nexoniarz/.config/gtk-4.0/settings.ini 0644 nexoniarz users - -"
];
}