summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--flake.nix5
-rw-r--r--home/default.nix4
-rw-r--r--hosts/common.nix9
-rw-r--r--pkgs/overlay.nix1
-rw-r--r--pkgs/overlays.nix7
5 files changed, 19 insertions, 7 deletions
diff --git a/flake.nix b/flake.nix
index 21245bc..cbad259 100644
--- a/flake.nix
+++ b/flake.nix
@@ -13,9 +13,10 @@
};
};
- outputs = { nixpkgs, home-manager, nix-darwin, ... }@inputs:
+ outputs = { self, nixpkgs, home-manager, nix-darwin, ... }@inputs:
let
args = {
+ inherit self;
flakeInputs = inputs;
metadata = nixpkgs.lib.importTOML ./metadata.toml;
};
@@ -31,7 +32,6 @@
./hosts/muhammed/configuration.nix
./hosts/common.nix
./home
- { nixpkgs.overlays = [ (import ./pkgs/overlay.nix) ]; }
# FIXME: Get the following to work without nix-darwin bithcing about unused NixOS options.
# ./lib
# ./modules
@@ -49,7 +49,6 @@
./hosts/ahmed/configuration.nix
./hosts/common.nix
./home
- { nixpkgs.overlays = [ (import ./pkgs/overlay.nix) ]; }
./lib
./modules
./services
diff --git a/home/default.nix b/home/default.nix
index f0aa53b..d10062b 100644
--- a/home/default.nix
+++ b/home/default.nix
@@ -1,4 +1,4 @@
-{ flakeInputs, metadata, ... }:
+{ self, flakeInputs, metadata, ... }:
{
# Use the flake input pkgs so Home Manager configuration can share overlays
@@ -7,7 +7,7 @@
# Pass special arguments from flake.nix further down the chain. I really hate
# this split module system.
- home-manager.extraSpecialArgs = { inherit flakeInputs metadata; };
+ home-manager.extraSpecialArgs = { inherit self flakeInputs metadata; };
# OKAY FUCK THIS SHIT. THERE IS ONE USER. IT IS ME. LINUS. I WILL ADD
# MULTIUSER SUPPORT IF IT EVER BECOMES A REQUIREMENT.
diff --git a/hosts/common.nix b/hosts/common.nix
index 87c6b27..84d0354 100644
--- a/hosts/common.nix
+++ b/hosts/common.nix
@@ -1,11 +1,18 @@
# Shared configuraion regardless of hosts.
-{ pkgs, ... }:
+{ pkgs, options, self, ... }:
{
# Enable de facto stable features.
nix.settings.experimental-features = [ "nix-command" "flakes" ];
+ # Use overlays from this repo for building system configuration as well as
+ # system-wide.
+ #
+ # See: https://nixos.wiki/wiki/Overlays#Using_nixpkgs.overlays_from_configuration.nix_as_.3Cnixpkgs-overlays.3E_in_your_NIX_PATH
+ nixpkgs.overlays = (import ../pkgs/overlays.nix);
+ nix.nixPath = options.nix.nixPath.default ++ [ "nixpkgs-overlays=${self}/pkgs/overlays.nix" ];
+
# Set ZSH as the shell.
# https://nixos.wiki/wiki/Command_Shell#Changing_default_shelltrue
programs.zsh.enable = true;
diff --git a/pkgs/overlay.nix b/pkgs/overlay.nix
deleted file mode 100644
index 9e0a6c4..0000000
--- a/pkgs/overlay.nix
+++ /dev/null
@@ -1 +0,0 @@
-self: super: (import ./default.nix) super
diff --git a/pkgs/overlays.nix b/pkgs/overlays.nix
new file mode 100644
index 0000000..cbe2222
--- /dev/null
+++ b/pkgs/overlays.nix
@@ -0,0 +1,7 @@
+# Returns a list of overlays such that this file can be used for the value of
+# nixpkgs-overlays in NIX_PATH.
+#
+# See: hosts/common.nix
+# See: https://nixos.org/manual/nixpkgs/stable/#sec-overlays-lookup
+
+[ (self: super: (import ./default.nix) super) ]