summaryrefslogtreecommitdiff
path: root/modules/overlays
diff options
context:
space:
mode:
authorSimon Parri <simonparri@ganzeria.com>2025-05-17 22:55:22 -0500
committerSimon Parri <simonparri@ganzeria.com>2025-05-17 22:55:22 -0500
commit7ea5c7970a8c04961e6ad2f676ebaf88dd212f57 (patch)
treec087d3cbd5ae7f7a9a63739d047955b9f5bde33a /modules/overlays
parent460bff240a01dd466e2bf6d3129c392b75c8340a (diff)
downloadnixos-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.nix31
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}"];
+ };
}