{ description = "NixOS System Config"; inputs = { # NixOS packages nixpkgs.url = "nixpkgs/nixos-23.05"; # Manage dotfiles in a home directory home-manager.url = "github:nix-community/home-manager/release-23.05"; home-manager.inputs.nixpkgs.follows = "nixpkgs"; # Secureboot Configuration lanzaboote.url = "github:nix-community/lanzaboote"; lanzaboote.inputs.nixpkgs.follows = "nixpkgs"; }; outputs = { nixpkgs, home-manager, lanzaboote, ... }: let system = "x86_64-linux"; hostname = "nixos-p1"; pkgs = import nixpkgs { # Tells Flake what OS version we are using inherit system; config = { allowUnfree = true; }; }; lib = nixpkgs.lib; in { # Set up users with home-manager homeManagerConfigurations = { # Configuration for user "Albert" albert = home-manager.lib.homeManagerConfiguration { inherit system pkgs; username = "albert"; homeDirectory = "/home/albert"; configuration = { imports = [ ./users/albert/home.nix; ]; }; }; # Configuration for user "root" root = home-manager.lib.homeManagerConfiguration { inherit system pkgs; username = "root"; homeDirectory = "/root"; configuration = { imports = [ ./users/root/home.nix; ]; }; }; }; # NixOS Configuration files: nixosConfigurations = { # Declare the configuration for "nixos-laptop": nixos-laptop = lib.nixosSystem { inherit system hostname; modules = [ # Hardware Configuration ./laptop/lenovo-p1.nix # SecureBoot Configuration lanzaboote.nixosModules.lanzaboote # NixOS Configuration file ./configuration.nix # Tell home-manager to use both global and user packages: home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; } ]; # modules }; # lib.nixosSystem - nixos-laptop # Declare the configuration for "nixos-p1", my laptop: nixos-desktop = lib.nixosSystem { inherit system hostname; modules = [ # Hardware Configuration ./desktop/desktop.nix # SecureBoot Configuration lanzaboote.nixosModules.lanzaboote # NixOS Configuration file ./configuration.nix # Tell home-manager to use both global and user packages: home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; } ]; # modules }; # lib.nixosSystem - nixos-laptop }; # nixosConfiguration }; }