{ description = "NixOS + Home Manager configuration"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; hyprland = { url = "github:hyprwm/HyprLand"; inputs.nixpkgs.follows = "nixpkgs"; }; hyprland-plugins = { url = "github:hyprwm/hyprland-plugins"; inputs.hyprland.follows = "hyprland"; }; home-manager = { # consider pinning explicitly, e.g.: # url = "github:nix-community/home-manager/release-25.05"; url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs @ { self, nixpkgs, home-manager, ... }: let system = "x86_64-linux"; lib = nixpkgs.lib; mkHost = host: lib.nixosSystem { inherit system; specialArgs = { inherit inputs; }; modules = [ ./hosts/${host}/hardware-configuration.nix ./hosts/${host}/configuration.nix home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.backupFileExtension = "bak"; home-manager.extraSpecialArgs = { inherit inputs; }; # If you prefer to wire HM user(s) here globally, uncomment: home-manager.users.henrov = import ./home/henrov/home.nix; } ]; }; in { nixosConfigurations = { traveldroid = mkHost "traveldroid"; }; packages.${system}.default = self.nixosConfigurations.traveldroid.config.system.build.toplevel; }; }