{ description = "System configuration for all machines in samfélag"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-22.05"; home-manager.url = "github:nix-community/home-manager/release-22.05"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; emacs-overlay.url = "github:nix-community/emacs-overlay"; }; outputs = inputs @ { self, nixpkgs, home-manager, ... }: let system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; config.allowUnfree = true; overlays = import ./overlays; }; lib = nixpkgs.lib.extend (self: super: { my = import ./lib { inherit pkgs inputs; lib = self; }; }); in { nixosConfigurations = { # - Reykjavik ---------------------------- reykjavik = lib.nixosSystem { inherit system; inherit pkgs; specialArgs = { inherit lib inputs system; }; modules = [ ./hosts/reykjavik { imports = [ inputs.home-manager.nixosModules.home-manager ] # All my personal modules ++ (lib.my.mapModulesRec' (toString ./modules) import); } ]; }; # - Kopavogur ---------------------------- kopavogur = lib.nixosSystem { inherit system; inherit pkgs; specialArgs = { inherit lib inputs system; }; modules = [ ./hosts/kopavogur { imports = [ inputs.home-manager.nixosModules.home-manager ] # All my personal modules ++ (lib.my.mapModulesRec' (toString ./modules) import); } ]; }; }; }; }