diff options
author | Simon Parri <simonparri@ganzeria.com> | 2025-05-17 22:55:22 -0500 |
---|---|---|
committer | Simon Parri <simonparri@ganzeria.com> | 2025-05-17 22:55:22 -0500 |
commit | 7ea5c7970a8c04961e6ad2f676ebaf88dd212f57 (patch) | |
tree | c087d3cbd5ae7f7a9a63739d047955b9f5bde33a /modules/overlays | |
parent | 460bff240a01dd466e2bf6d3129c392b75c8340a (diff) | |
download | nixos-config-7ea5c7970a8c04961e6ad2f676ebaf88dd212f57.tar.gz nixos-config-7ea5c7970a8c04961e6ad2f676ebaf88dd212f57.zip |
modules/overlays: Add nixpkgs overlays to NIX_PATH for global use
Diffstat (limited to 'modules/overlays')
-rw-r--r-- | modules/overlays/default.nix | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/modules/overlays/default.nix b/modules/overlays/default.nix index 745673a..fa1ee01 100644 --- a/modules/overlays/default.nix +++ b/modules/overlays/default.nix @@ -1,17 +1,26 @@ -{ lib, config, ... }: +{ lib, config, pkgs, ... }: -let cfg = config.this.overlays; - overlay = ov: - lib.optional cfg."${ov}".enable - (import ./${ov}.nix); +let + cfg = config.this.overlays; + + mapOverlays = f: + lib.mapAttrsToList (ov: _: f ov) + (lib.filterAttrs + (ov: c: c.enable) + cfg); + + overlayDir = pkgs.linkFarm "nixpkgs-overlays" + (mapOverlays (ov: { name = ${ov}.nix; path = ./${ov}.nix; })); in { - options = { - this.overlays.emacs.enable = lib.mkEnableOption "custom-built Emacs overlay"; - this.overlays.g45_h264.enable = lib.mkEnableOption "intel-vaapi-driver with h264 support on gm45"; + options.this.overlays = { + emacs.enable = lib.mkEnableOption "custom-built Emacs overlay"; + g45_h264.enable = lib.mkEnableOption "intel-vaapi-driver with h264 support on gm45"; }; - config.nixpkgs.overlays = - (overlay "emacs") ++ - (overlay "g45_h264"); + config = { + nixpkgs.overlays = + mapOverlays (ov: import ./${ov}.nix); + nix.nixPath = lib.mkAfter ["nixpkgs-overlays=${overlayDir}"]; + }; } |