{ config, lib, pkgs, namespace, ... }: let cfg = config.${namespace}.apps.development; in { options = { ${namespace}.apps.development = { enable = lib.mkEnableOption "Enables development tools"; kubernetes.enable = lib.mkEnableOption "Enables kubectl, virtctl, and similar tools."; }; }; config = lib.mkMerge [ (lib.mkIf cfg.enable { ${namespace} = { packages = with pkgs; [ nil # Nix Language server: https://github.com/oxalica/nil nix-prefetch-scripts ]; ui.flatpak = { enable = true; packages = [ "com.vscodium.codium" ]; }; }; }) (lib.mkIf cfg.kubernetes.enable { environment.systemPackages = with pkgs; [ kubectl kubernetes-helm kubevirt # Virtctl command-line tool ]; services.flatpak.packages = [ "dev.k8slens.OpenLens" ]; }) ]; }