37 lines
1.1 KiB
Nix
37 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
|
||
|
'';
|
||
|
}
|