{ options, config, lib, pkgs, inputs, ... }: let inherit (inputs.nix-colors.lib-contrib { inherit pkgs; }) gtkThemeFromScheme; cfg = config.modules.desktop; in { options.modules.desktop = with lib.frajul; with lib.types; { colorscheme = mkOpt str "catppuccin-mocha" "Theme to use for the desktop"; enable = mkBoolOpt false "Enable desktop"; }; # Do not make conditional, just toggle things on and off imports = [ inputs.prism.homeModules.prism inputs.nix-colors.homeManagerModules.default ]; config = lib.mkIf cfg.enable { # home.sessionVariables.GTK_THEME = "Catppuccin-Mocha-Compact-Blue-dark"; prism = { enable = true; wallpapers = ./wallpapers; colorscheme = inputs.nix-colors.colorschemes.${cfg.colorscheme}; }; gtk = { enable = true; theme = { name = inputs.nix-colors.colorschemes.${cfg.colorscheme}.slug; package = gtkThemeFromScheme { scheme = inputs.nix-colors.colorschemes.${cfg.colorscheme}; }; }; iconTheme = { name = "Papirus-Dark"; package = pkgs.papirus-icon-theme; }; }; }; }