{
  pkgs,
  inputs,
  config,
  lib,
  ...
}: let
  cfg = config.pim.stylix;
in {
  imports = [inputs.stylix.nixosModules.stylix];
  options.pim.stylix.enable = lib.mkEnableOption "stylix";

  config = {
    stylix = lib.mkMerge [
      {
        image = "${inputs.nixos-artwork}/wallpapers/nix-wallpaper-binary-blue.png";
      }
      (lib.mkIf cfg.enable {
        enable = true;
        base16Scheme = "${pkgs.base16-schemes}/share/themes/gruvbox-dark-medium.yaml";

        cursor = {
          package = pkgs.bibata-cursors;
          name = "Bibata-Modern-Classic";
          size = 28;
        };

        fonts = {
          monospace = {
            package = pkgs.nerdfonts.override {fonts = ["JetBrainsMono"];};
            name = "JetBrainsMono Nerd Font Mono";
          };

          sansSerif = {
            package = pkgs.dejavu_fonts;
            name = "DejaVu Sans";
          };

          serif = {
            package = pkgs.dejavu_fonts;
            name = "DejaVu Serif";
          };
        };
      })
    ];
  };
}