# This file defines overlays {inputs, ...}: { # This one brings our custom packages from the 'pkgs' directory additions = final: _prev: import ../pkgs {pkgs = final;}; # Third party overlays # nh = inputs.nh.overlays.default; //not needed anymore but example how to use it # For every flake input, aliases 'pkgs.inputs.${flake}' to # 'inputs.${flake}.packages.${pkgs.system}' or # 'inputs.${flake}.legacyPackages.${pkgs.system}' flake-inputs = final: _: { inputs = builtins.mapAttrs ( _: flake: let legacyPackages = (flake.legacyPackages or {}).${final.system} or {}; packages = (flake.packages or {}).${final.system} or {}; in if legacyPackages != {} then legacyPackages else packages ) inputs; }; # This one contains whatever you want to overlay # You can change versions, add patches, set compilation flags, anything really. # https://nixos.wiki/wiki/Overlays modifications = final: prev: { # example = prev.example.overrideAttrs (oldAttrs: rec { # ... # }); }; # When applied, the unstable nixpkgs set (declared in the flake inputs) will # be accessible through 'pkgs.unstable' unstable-packages = final: _prev: { unstable = import inputs.nixpkgs-unstable { system = final.system; config.allowUnfree = true; }; }; }