{ pkgs, lib, config, ... }: let cfg = config.my.stylix; mkScheme = color: name: polarity: image: { inherit name polarity image; iconPackage = pkgs.papirus-icon-theme.override { inherit color; }; base16Scheme = "${pkgs.base16-schemes}/share/themes/${name}.yaml"; }; schemes = { who = mkScheme "orange" "catppuccin-frappe" "dark" ./wallpapers/Nikolay_Kasatkin_Who.jpeg; jesus = mkScheme "red" "equilibrium-light" "light" ./wallpapers/jesus.png; ballerinas = mkScheme "brown" "mocha" "dark" ./wallpapers/Waay-Ballerinas.jpeg; }; scheme = schemes.ballerinas; in { options.my.stylix.enable = lib.mkEnableOption "enable"; config = { stylix = { inherit (scheme) image polarity base16Scheme; enable = cfg.enable; targets.qt.platform = lib.mkForce "qtct"; }; 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" ]; }; }; }; }; }