{ description = "NixOS system flake"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.05"; nixos-unstable.url = "github:NixOS/nixpkgs/nixos-unstable"; nixos-hardware.url = "github:NixOS/nixos-hardware/master"; home-manager = { url = "github:nix-community/home-manager/release-23.05"; inputs.nixpkgs.follows = "nixpkgs"; }; lanzaboote = { url = "github:nix-community/lanzaboote/v0.3.0"; # deliberately do _not_ follow the nixpkgs input here, because paranoia and test coverage }; nur.url = "github:nix-community/NUR"; # TODO: possible make this a flake as well mysecrets = { flake = false; url = "git+ssh://gitea@git.orlives.de:2342/schmittlauch/home-manager_secrets.git"; }; }; outputs = { self, nixpkgs, nur, lanzaboote, ... }@inputs: let system = "x86_64-linux"; pkgs = nixpkgs.legacyPackages.${system}; in { nixosConfigurations.thinknix = nixpkgs.lib.nixosSystem { inherit system; modules = [ ./nixos/configuration.nix lanzaboote.nixosModules.lanzaboote ]; # necessary to make the top-level inputs available to system configuration specialArgs = { #TODO: for system, consider moving to flake-utils inherit inputs system; }; }; homeConfigurations.spiollinux = inputs.home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = [ { imports = [ nur.hmModules.nur ./home/home.nix ]; # extends the home config home.username = "spiollinux"; home.homeDirectory = "/home/spiollinux"; } ]; # Optionally use extraSpecialArgs # to pass through arguments to home.nix extraSpecialArgs = { #TODO: for system, consider moving to flake-utils inherit inputs system; }; }; }; }