diff options
Diffstat (limited to 'flake.nix')
-rw-r--r-- | flake.nix | 56 |
1 files changed, 26 insertions, 30 deletions
@@ -1,5 +1,10 @@ { - inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.05"; + nixConfig = { + extra-substituters = "https://nix-community.cachix.org"; + extra-trusted-public-keys = "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="; + }; + + inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.11"; inputs.nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; inputs.nixos-hardware.url = "github:NixOS/nixos-hardware/master"; inputs.emacs-overlay.url = "github:nix-community/emacs-overlay"; @@ -11,35 +16,15 @@ outputs = { self, nixpkgs, nixpkgs-unstable, nixos-hardware, emacs-overlay, agenix, jovian, mujmap }: let - pkgs-module = { config, ... }: - let - cfg = config.nixpkgs; - - extra-packages = final: prev: { - agenix = agenix.packages.${final.system}.default; - mujmap = mujmap.packages.${final.system}.default; - }; - - unstable-overlay = final: prev: rec { - unstable = import nixpkgs-unstable { - inherit (cfg) config localSystem crossSystem; - }; - }; - in { - nixpkgs.pkgs = import nixpkgs { - inherit (cfg) config localSystem crossSystem; - overlays = cfg.overlays - ++ [ unstable-overlay extra-packages emacs-overlay.overlay ]; - }; - }; + systems = ["x86_64-linux"]; + lib = nixpkgs.lib; + forAllSystems = lib.genAttrs systems; registry-module = { ... }: { nix.registry.nixpkgs.flake = nixpkgs; nix.registry.nixpkgs-unstable.flake = nixpkgs-unstable; }; - lib = nixpkgs.lib; - orbekk-modules = let moduleFiles = lib.attrNames (lib.filterAttrs (n: v: lib.hasSuffix ".nix" n && v == "regular") @@ -53,14 +38,23 @@ }; in lib.listToAttrs (map mkModule moduleNames); - in { - nixosModules = orbekk-modules // { inherit pkgs-module registry-module; }; + in rec { + nixosModules = orbekk-modules // { inherit registry-module; }; - packages."x86_64-linux" = - let pkgs = import nixpkgs { system = "x86_64-linux"; }; - in { }; + overlays = { + emacs-overlay = emacs-overlay.overlay; - nixosConfigurations = let + extraPackages = final: prev: { + agenix = agenix.packages.${final.system}.default; + mujmap = mujmap.packages.${final.system}.default; + unstable = import nixpkgs-unstable { + system = final.system; + config.allowUnfree = true; + }; + }; + }; + + nixosConfigurations = let mkConfig = { hostName, module ? (./. + "/machines/${hostName}.nix") , system ? "x86_64-linux" }: { name = hostName; @@ -79,6 +73,8 @@ lastModified = pkgs.lib.substring 0 8 (self.lastModifiedDate or self.lastModified or "19700101"); in "${lastModified}.${self.shortRev or "dirty"}"; + + nixpkgs.overlays = builtins.attrValues overlays; }) ] ++ lib.optional (hostName == "dex") jovian.nixosModules.jovian; }; |