# nyx.nix { config, lib, ... }: with lib; { ################################################################ # Global Nyx Options ################################################################ options.nyx = { enable = mkEnableOption "Enable all Nyx tools"; username = mkOption { type = types.str; description = "Username for Nyx tools"; }; nixDirectory = mkOption { type = types.path; description = "Path to NixOS flake directory"; }; logDir = mkOption { type = types.path; default = "/home/${config.nyx.username}/.nyx/logs"; description = "Directory for Nyx logs"; }; autoPush = mkOption { type = types.bool; default = false; description = "Automatically push changes after rebuild/cleanup"; }; }; ################################################################ # Import submodules ################################################################ imports = [ ./nyx-rebuild.nix ./nyx-cleanup.nix ./nyx-tool.nix ./nyx-tui.nix ]; ################################################################ # Global disable logic ################################################################ config = mkIf (!config.nyx.enable) { nyx.nyx-rebuild.enable = false; nyx.nyx-cleanup.enable = false; nyx.nyx-tui.enable = false; nyx.nyx-tool.enable = false; }; }