diff options
Diffstat (limited to 'flake.nix')
| -rw-r--r-- | flake.nix | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..dad3a4f --- /dev/null +++ b/flake.nix @@ -0,0 +1,73 @@ +{ + inputs = { + home-manager = { + url = "github:nix-community/home-manager"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + impermanence.url = "github:nix-community/impermanence"; + nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; + noshell = { + url = "github:viperML/noshell"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nur = { + url = "github:nix-community/NUR"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + nvf = { + url = "github:notashelf/nvf"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + stylix = { + url = "github:nix-community/stylix"; + inputs.nixpkgs.follows = "nixpkgs"; + }; + }; + outputs = { + home-manager, + impermanence, + nixpkgs, + noshell, + nur, + nvf, + stylix, + ... + }: let + laptop = import ./machines/laptop.nix; + in { + nixosConfigurations.${laptop.hostname} = nixpkgs.lib.nixosSystem { + system = laptop.system; + specialArgs = {machine = laptop;}; + modules = [ + home-manager.nixosModules.home-manager + { + nixpkgs.overlays = [nur.overlays.default]; + home-manager.useGlobalPkgs = true; + home-manager.extraSpecialArgs = { + machine = laptop; + }; + home-manager.users = + builtins.mapAttrs + (name: value: value) + ( + nixpkgs.legacyPackages.${laptop.system}.lib.genAttrs + laptop.usernames + ( + name: { + imports = [ + stylix.homeModules.stylix + nvf.homeManagerModules.default + ./users/${name}/home.nix + ]; + } + ) + ); + } + impermanence.nixosModules.impermanence + noshell.nixosModules.default + ./configuration.nix + ./hardware-configuration.nix + ]; + }; + }; +} |
