{ config, lib, pkgs, ... }: with lib; { options.nomarchy = { # System-level options system = { enable = mkEnableOption "Nomarchy core system features"; # Allow users to add extra system packages extraPackages = mkOption { type = types.listOf types.package; default = []; description = "Additional system-wide packages to install"; }; # Allow overriding system defaults hostname = mkOption { type = types.str; default = "nomarchy"; description = "The system hostname"; }; # Allow user to inject their own NixOS modules extraModules = mkOption { type = types.listOf types.deferredModule; default = []; description = "Extra NixOS modules to include"; }; }; # Home-level options home = { enable = mkEnableOption "Nomarchy home environment features"; # Allow users to add extra user packages extraPackages = mkOption { type = types.listOf types.package; default = []; description = "Additional user-level packages to install"; }; # Configuration for the environment terminal = mkOption { type = types.enum [ "alacritty" "kitty" "ghostty" ]; default = "alacritty"; description = "Preferred terminal emulator"; }; # Allow user to inject their own Home Manager modules extraModules = mkOption { type = types.listOf types.deferredModule; default = []; description = "Extra Home Manager modules to include"; }; # Theming overrides themeOverride = mkOption { type = types.nullOr types.str; default = null; description = "Force a specific theme (ignoring state files)"; }; }; # Hardware flags (already exists in hardware.nix, but good to keep in mind) }; }