let sources = import ../../npins; in final: prev: let nix-monitored = sources.nix-monitored.asFlake.packages.${final.stdenv.hostPlatform.system}.default.override { inherit (final) nix # Use the nix the user wants, whether it's lix or nix nix-output-monitor # don't use the nom pinned by nix-monitored ; withNotify = false; }; # * overrides the nix input as nix-monitored # * any override changing the nix input will change that to nix-monitored use-nix-monitored = drv: let drv' = drv.override { nix = nix-monitored; }; in drv' // rec { override = args: let args' = if args ? nix then args // { nix = nix-monitored.override { inherit (args) nix; }; } else args; in (drv'.override args') // { inherit override; }; }; inherit (prev) lib; in lib.optionalAttrs (prev ? nixos-rebuild) { nixos-rebuild = use-nix-monitored prev.nixos-rebuild; } // lib.optionalAttrs (prev ? nixos-rebuild-ng) { nixos-rebuild-ng = use-nix-monitored prev.nixos-rebuild-ng; } // { nix-direnv = use-nix-monitored prev.nix-direnv; }