{ description = "A very basic flake"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; plasma-manager = { url = "github:nix-community/plasma-manager"; inputs.nixpkgs.follows = "nixpkgs"; inputs.home-manager.follows = "home-manager"; }; nix-doom-emacs-unstraightened = { url = "github:marienz/nix-doom-emacs-unstraightened"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, ... } @ inputs: let baseModules = [ ./roles inputs.sops-nix.nixosModules.sops inputs.home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.sharedModules = [ inputs.plasma-manager.homeManagerModules.plasma-manager inputs.nix-doom-emacs-unstraightened.hmModule ]; } ]; in { nixosConfigurations.z790prors-nix = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; specialArgs = { inherit inputs; }; modules = baseModules ++ [ ./machines/z790prors/configuration.nix { home-manager.users.johno = import ./home/home-z790prors.nix; } ]; }; nixosConfigurations.nix-book = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; modules = baseModules ++ [ ./machines/nix-book/configuration.nix { home-manager.users.johno = import ./home/home-nix-book.nix; } ]; }; nixosConfigurations.boxy = nixpkgs.lib.nixosSystem rec { system = "x86_64-linux"; modules = baseModules ++ [ ./machines/boxy/configuration.nix inputs.home-manager.nixosModules.home-manager { home-manager.users.johno = import ./home/home-default.nix; } ]; }; }; }