36 lines
1.1 KiB
Nix
36 lines
1.1 KiB
Nix
{ lib, pkgs, inputs, ... }: {
|
|
|
|
nix = {
|
|
extraOptions = ''
|
|
experimental-features = nix-command flakes
|
|
'';
|
|
};
|
|
|
|
# override default nix shell nixpkgs# behaviour to use current flake lock
|
|
nix.registry =
|
|
let flakes = lib.filterAttrs (_name: value: value ? outputs) inputs.self.inputs;
|
|
in builtins.mapAttrs (_name: v: { flake = v; }) flakes;
|
|
|
|
nix.nixPath = lib.mapAttrsToList (name: value: "${name}=${value.outPath}") inputs.self.inputs;
|
|
|
|
environment.shellAliases = {
|
|
nix-build="${pkgs.nix-output-monitor}/bin/nom-build";
|
|
nix-shell="${pkgs.nix-output-monitor}/bin/nom-shell";
|
|
};
|
|
|
|
programs.zsh.interactiveShellInit = ''
|
|
# hacky wrapper for nix, so we can use nom automagically
|
|
export _nom_cmd=${pkgs.nix-output-monitor}/bin/nom
|
|
function nix {
|
|
case $1 in
|
|
build|shell|develop)
|
|
echo \[SUBSTITUTION\] ''$_nom_cmd ''${@:1} 1>&2
|
|
''$_nom_cmd ''${@:1}
|
|
;;
|
|
*)
|
|
${pkgs.nix}/bin/nix $@
|
|
esac
|
|
}
|
|
compdef nix=_nix
|
|
'';
|
|
}
|