diff --git a/flake.lock b/flake.lock index ea5d0d4..e7c2961 100644 --- a/flake.lock +++ b/flake.lock @@ -188,6 +188,21 @@ "type": "github" } }, + "nixpkgs-unstable": { + "locked": { + "lastModified": 1705496572, + "narHash": "sha256-rPIe9G5EBLXdBdn9ilGc0nq082lzQd0xGGe092R/5QE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "842d9d80cfd4560648c785f8a4e6f3b096790e19", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-unstable", + "type": "indirect" + } + }, "nixpkgs_2": { "locked": { "lastModified": 1702272962, @@ -228,6 +243,7 @@ "home-manager": "home-manager_2", "nixos-hardware": "nixos-hardware", "nixpkgs": "nixpkgs_3", + "nixpkgs-unstable": "nixpkgs-unstable", "secrets": "secrets", "thunderbird-gnome-theme": "thunderbird-gnome-theme" } diff --git a/flake.nix b/flake.nix index 76fdf85..0a29d99 100644 --- a/flake.nix +++ b/flake.nix @@ -3,6 +3,8 @@ inputs = { nixpkgs.url = "nixpkgs/nixos-23.11"; + nixpkgs-unstable.url = "nixpkgs/nixos-unstable"; + # nixpkgs-master.url = "nixpkgs"; agenix.url = "github:ryantm/agenix"; deploy-rs.url = "github:serokell/deploy-rs"; disko = { @@ -28,12 +30,18 @@ }; }; - outputs = inputs @ { self, nixpkgs, agenix, deploy-rs, disko, home-manager, nixos-hardware, secrets, ... }: + outputs = inputs @ { self, nixpkgs, nixpkgs-unstable, agenix, deploy-rs, disko, home-manager, nixos-hardware, secrets, ... }: let - nixpkgsForSystem = system: inputs.nixpkgs; + mkPkgsForSystem = system: inputs.nixpkgs; overlays = [ agenix.overlays.default (import ./overlays/gnome.nix) + ( + final: prev: { + unstable = import inputs.nixpkgs-unstable { system = final.system; }; + custom = self.packages { system = final.system; }; + } + ) ]; commonModules = [ agenix.nixosModules.age @@ -41,9 +49,9 @@ home-manager.nixosModule ./modules ]; - nixosSystem = { system, name, extraModules ? [] }: + mkNixosSystem = { system, name, extraModules ? [] }: let - nixpkgs = nixpkgsForSystem system; + nixpkgs = mkPkgsForSystem system; lib = (import nixpkgs { inherit overlays system; }).lib; in inputs.nixpkgs.lib.nixosSystem { @@ -58,9 +66,6 @@ config.allowUnfree = true; }; networking.hostName = name; - nix = { - extraOptions = "experimental-features = nix-command flakes"; - }; }) ./hosts/${name} ] ++ extraModules; @@ -68,12 +73,12 @@ in { nixosConfigurations = { - atlas = nixosSystem { system = "x86_64-linux"; name = "atlas"; }; - eos = nixosSystem { system = "x86_64-linux"; name = "eos"; }; - helios = nixosSystem { system = "x86_64-linux"; name = "helios"; }; - hypnos = nixosSystem { system = "x86_64-linux"; name = "hypnos"; }; - odyssey = nixosSystem { system = "x86_64-linux"; name = "odyssey"; }; - pi = nixosSystem { system = "aarch64-linux"; name = "pi"; extraModules = [ nixos-hardware.nixosModules.raspberry-pi-4 ]; }; + atlas = mkNixosSystem { system = "x86_64-linux"; name = "atlas"; }; + eos = mkNixosSystem { system = "x86_64-linux"; name = "eos"; }; + helios = mkNixosSystem { system = "x86_64-linux"; name = "helios"; }; + hypnos = mkNixosSystem { system = "x86_64-linux"; name = "hypnos"; }; + odyssey = mkNixosSystem { system = "x86_64-linux"; name = "odyssey"; }; + pi = mkNixosSystem { system = "aarch64-linux"; name = "pi"; extraModules = [ nixos-hardware.nixosModules.raspberry-pi-4 ]; }; }; deploy.nodes.pi = {