{ pkgs, lib, config, ... }: let scheme = schemes.paul; cfg = config.my.stylix; mkScheme = { color ? null, name ? null, polarity, image, iconPackage ? pkgs.papirus-icon-theme.override { inherit color; }, base16Scheme ? if name != null then "${pkgs.base16-schemes}/share/themes/${name}.yaml" else null, }: { inherit color name polarity image iconPackage base16Scheme ; }; schemes = { who = mkScheme { name = "catppuccin-frappe"; polarity = "dark"; image = ./wallpapers/Nikolay_Kasatkin_Who.jpeg; iconPackage = pkgs.catppuccin-papirus-folders.override { flavor = "frappe"; accent = "peach"; }; }; space = mkScheme { name = "solarflare"; color = "carmine"; polarity = "dark"; image = ./wallpapers/space.jpg; }; jesus = mkScheme { color = "red"; name = "equilibrium-light"; polarity = "light"; image = ./wallpapers/jesus.png; }; ballerinas = mkScheme { color = "brown"; name = "mocha"; polarity = "dark"; image = ./wallpapers/Waay-Ballerinas.jpeg; }; paul = mkScheme { color = "green"; name = "valua"; polarity = "light"; image = ./wallpapers/paul1.jpg; base16Scheme = { base00 = "#18262F"; base01 = "#222E38"; base02 = "#586875"; base03 = "#667581"; base04 = "#85939E"; base05 = "#A6AFB8"; base06 = "#E8E9ED"; base07 = "#F5F7FA"; base08 = "#4c7c4a"; # deep fern green base09 = "#6b8f3c"; # olive bark base0A = "#b5b938"; # lichen gold base0B = "#7CC844"; # success green (kept from original) base0C = "#4fbf87"; # turquoise vine base0D = "#2aaf6f"; # jungle leaf base0E = "#88a337"; # mossy lime base0F = "#5c8b55"; # swamp olive }; }; }; in { options.my.stylix.enable = lib.mkEnableOption "enable"; config = { stylix = { inherit (scheme) image polarity; enable = cfg.enable; targets.qt.platform = lib.mkForce "qtct"; } // lib.optionalAttrs (scheme ? base16Scheme) { inherit (scheme) base16Scheme; }; home-manager.users.jawz = { gtk = lib.mkIf (!cfg.enable) { iconTheme = scheme.iconPackage; }; stylix = { enable = cfg.enable; iconTheme = { enable = cfg.enable; package = scheme.iconPackage; light = "Papirus-Light"; dark = "Papirus-Dark"; }; targets.librewolf = { firefoxGnomeTheme.enable = cfg.enable; profileNames = [ "jawz" ]; }; }; }; }; }