{ lib, pkgs, ... }:

{
  options.nomarchy = {
    toggles = {
      suspend = lib.mkOption {
        type = lib.types.bool;
        default = true;
        description = "Whether to show suspend in system menu.";
      };
      screensaver = lib.mkOption {
        type = lib.types.bool;
        default = true;
        description = "Whether the screensaver is enabled.";
      };
      idle = lib.mkOption {
        type = lib.types.bool;
        default = true;
        description = "Whether the idle lock is enabled.";
      };
      nightlight = lib.mkOption {
        type = lib.types.bool;
        default = false;
        description = "Whether the nightlight is enabled.";
      };
      waybar = lib.mkOption {
        type = lib.types.bool;
        default = true;
        description = "Whether the top bar is enabled.";
      };
      skipVsCodeTheme = lib.mkOption {
        type = lib.types.bool;
        default = false;
        description = "Whether to skip theme changes in VSCode.";
      };
    };
    nightlightTemperature = lib.mkOption {
      type = lib.types.int;
      default = 4000;
      description = "Temperature for the nightlight.";
    };
    theme = lib.mkOption {
      type = lib.types.str;
      default = "summer-night";
      description = "System theme name.";
    };
    wallpaper = lib.mkOption {
      type = lib.types.str;
      default = "";
      description = "System wallpaper path.";
    };
    hyprland = {
      gaps_in = lib.mkOption {
        type = lib.types.int;
        default = 5;
        description = "Inner gaps for Hyprland.";
      };
      gaps_out = lib.mkOption {
        type = lib.types.int;
        default = 10;
        description = "Outer gaps for Hyprland.";
      };
      border_size = lib.mkOption {
        type = lib.types.int;
        default = 2;
        description = "Border size for Hyprland.";
      };
    };
    fonts = {
      monospace = lib.mkOption {
        type = lib.types.str;
        default = "JetBrainsMono Nerd Font";
        description = "System monospace font.";
      };
    };
    iconsTheme = lib.mkOption {
      type = lib.types.str;
      default = "Yaru-blue";
      description = "System icon theme name.";
    };
    isLightMode = lib.mkOption {
      type = lib.types.bool;
      default = false;
      description = "Whether the current theme is light mode.";
    };
    cursor = {
      name = lib.mkOption {
        type = lib.types.str;
        default = "Bibata-Modern-Ice";
        description = "Mouse cursor theme name.";
      };
      package = lib.mkOption {
        type = lib.types.package;
        default = pkgs.bibata-cursors;
        description = "Package providing the cursor theme.";
      };
    };
    configOverrides = lib.mkOption {
      type = lib.types.nullOr lib.types.path;
      default = null;
      description = "Path to a directory containing configuration overrides.";
    };
  };
}
