{ inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; stylix.url = "github:danth/stylix"; spicetify-nix.url = "github:Gerg-L/spicetify-nix"; nixvim.url = "github:nix-community/nixvim"; home-manager.url = "github:nix-community/home-manager"; ignis = { url = "github:ignis-sh/ignis"; inputs.nixpkgs.follows = "nixpkgs"; # recommended }; lanzaboote = { url = "github:nix-community/lanzaboote/v1.0.0"; # Optional but recommended to limit the size of your system closure. inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, stylix, spicetify-nix, nixvim, home-manager, lanzaboote, ... }@inputs: let system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; }; in { nixosConfigurations.cyberia = nixpkgs.lib.nixosSystem { inherit system; modules = [ stylix.nixosModules.stylix home-manager.nixosModules.home-manager lanzaboote.nixosModules.lanzaboote ( { pkgs, lib, config, ... }: { networking.hostName = "cyberia"; environment.systemPackages = [ pkgs.sbctl ]; services.xserver.videoDrivers = [ "nvidia" ]; hardware.nvidia.package = config.boot.kernelPackages.nvidiaPackages.stable; hardware.nvidia.modesetting.enable = true; hardware.nvidia.open = true; # Lanzaboote currently replaces the systemd-boot module. # This setting is usually set to true in configuration.nix # generated at installation time. So we force it to false # for now. boot.loader.systemd-boot.enable = lib.mkForce false; boot.lanzaboote = { enable = true; pkiBundle = "/var/lib/sbctl"; }; } ) ./configuration.nix { home-manager.useUserPackages = true; home-manager.useGlobalPkgs = true; home-manager.users.lucy = { imports = [ inputs.ignis.homeManagerModules.default nixvim.homeModules.nixvim spicetify-nix.homeManagerModules.spicetify ./home/home.nix ]; }; } ]; }; homeConfigurations.lucy = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages.${system}; extraSpecialArgs = { inherit inputs; }; modules = [ stylix.homeModules.stylix nixvim.homeModules.nixvim ./home/home.nix ./home/programs.nix ]; }; }; }