{ config, lib, pkgs, namespace, ... }: let cfg = config.${namespace}.monitoring; in { options.${namespace}.monitoring = { enable = lib.mkEnableOption "Common monitoring and system tools"; includeNetworkTools = lib.mkOption { type = lib.types.bool; default = true; description = "Include network monitoring tools"; }; includePerformanceTools = lib.mkOption { type = lib.types.bool; default = true; description = "Include performance monitoring tools"; }; }; config = lib.mkIf cfg.enable { environment.systemPackages = with pkgs; [ # Basic system monitoring htop ] ++ lib.optionals cfg.includePerformanceTools [ glances nmon iotop ] ++ lib.optionals cfg.includeNetworkTools [ speedtest-cli iftop nethogs tcpdump wireshark-cli ]; # Enable common system services for monitoring programs.screen.enable = lib.mkDefault true; }; }