{ config, lib, pkgs, inputs, ... }: { options.modules.stylix = { enable = lib.mkEnableOption "Whether to enable Stylix, a theme manager for NixOS"; setupCursors = lib.mkOption { type = lib.types.bool; default = true; description = "Whether to setup cursors by default"; }; lightWallpaper = lib.mkOption { type = lib.types.path; description = "Path to light theme desktop wallpaper"; }; darkWallpaper = lib.mkOption { type = lib.types.path; description = "Path to dark theme desktop wallpaper"; }; }; imports = [ inputs.stylix.homeManagerModules.stylix ]; config = lib.mkIf config.modules.stylix.enable { stylix = { enable = true; polarity = lib.mkDefault "light"; image = lib.mkDefault config.modules.stylix.lightWallpaper; base16Scheme = lib.mkDefault "${pkgs.base16-schemes}/share/themes/atelier-cave.yaml"; cursor = lib.mkIf config.modules.stylix.setupCursors { name = "Bibata-Modern-Classic"; package = pkgs.bibata-cursors; size = 24; }; }; specialisation = { light.configuration.stylix = { polarity = "light"; image = config.modules.stylix.lightWallpaper; base16Scheme = "${pkgs.base16-schemes}/share/themes/atelier-cave-light.yaml"; }; dark.configuration.stylix = { polarity = "dark"; image = config.modules.stylix.darkWallpaper; base16Scheme = "${pkgs.base16-schemes}/share/themes/atelier-cave.yaml"; }; }; }; }