diff options
| author | Grigory Shipunov | 2023-02-14 22:00:22 +0100 |
|---|---|---|
| committer | Grigory Shipunov | 2023-02-14 22:00:22 +0100 |
| commit | fc21e3a1b2255d82afcc45770704920da875cbfc (patch) | |
| tree | e3c0d0d1a02ae790fae34e1d20cec3b517d62fa6 /modules/basic-tools/nix.nix | |
| parent | f3ef2e058ce050af259a650d587bb47138333567 (diff) | |
refactor basic tools a bit
Diffstat (limited to 'modules/basic-tools/nix.nix')
| -rw-r--r-- | modules/basic-tools/nix.nix | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/modules/basic-tools/nix.nix b/modules/basic-tools/nix.nix new file mode 100644 index 0000000..4a481ae --- /dev/null +++ b/modules/basic-tools/nix.nix @@ -0,0 +1,36 @@ +{ 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 + ''; +} |
