description = "Droidnix: A dendritic NixOS + Home Manager configuration"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; flake-parts.url = "github:hercules-ci/flake-parts"; import-tree.url = "github:vic/import-tree"; stylix = { url = "github:nix-community/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; zen-browser = { url = "github:youwen5/zen-browser-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; hyprland.url = "github:hyprwm/Hyprland"; }; outputs = { self, nixpkgs, home-manager, flake-parts, import-tree, stylix, hyprland, zen-browser, ... }: flake-parts.lib.eachDefaultSystem (system: let pkgs = import nixpkgs { inherit system; }; # Define the flake root for all modules flakeRoot = self; hmModules = home-manager.lib.hmModules; in rec { # NixOS system configurations for each host nixosConfigurations = { traveldroid = flake-parts.lib.mkFlakeModule { inherit pkgs; modules = [ ./generated/hosts/traveldroid/traveldroid.nix ]; # Pass flakeRoot into modules so they can reference it extraArgs = { inherit flakeRoot; }; }; }; # Home Manager modules can be aggregated here if needed homeManagerConfigurations = { traveldroid = hmModules.makeModuleSet { inherit pkgs flakeRoot; }; }; }); }