{ config, lib, pkgs, ... }: let baseCss = '' @define-color text #${config.theme.colors.text}; @define-color subtext #${config.theme.colors.subtext}; @define-color base #${config.theme.colors.base}; @define-color surface #${config.theme.colors.surface}; @define-color overlay #${config.theme.colors.overlay}; @define-color primary #${config.theme.colors.primary}; @define-color success #${config.theme.colors.success}; @define-color warning #${config.theme.colors.warning}; @define-color error #${config.theme.colors.error}; @define-color black #${config.theme.colors.bright.black}; @define-color red #${config.theme.colors.bright.red}; @define-color green #${config.theme.colors.bright.green}; @define-color yellow #${config.theme.colors.bright.yellow}; @define-color blue #${config.theme.colors.bright.blue}; @define-color magenta #${config.theme.colors.bright.magenta}; @define-color cyan #${config.theme.colors.bright.cyan}; @define-color white #${config.theme.colors.bright.white}; @define-color pink #${config.theme.colors.bright.pink}; @define-color orange #${config.theme.colors.bright.orange}; ''; finalCss = pkgs.runCommandLocal "gtk.css" {} '' echo ${lib.escapeShellArg baseCss} >>$out cat ${./gtk.css} >>$out ''; in { gtk = { enable = true; theme = { package = pkgs.adw-gtk3; name = "adw-gtk3"; }; gtk3.extraConfig.gtk-application-prefer-dark-theme = 1; }; xdg.configFile = { "gtk-3.0/gtk.css".source = finalCss; "gtk-4.0/gtk.css".source = finalCss; }; }