{ description = "hyperdeepnix - Base configuration flake"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; hyprland.url = "github:hyprwm/Hyprland/v0.54.2"; nix-colors.url = "github:misterio77/nix-colors"; pyprland.url = "github:hyprland-community/pyprland/3.2.0"; wiremix.url = "github:tsowell/wiremix"; jolt.url = "github:jordond/jolt"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs@{ self, nixpkgs, pyprland, wiremix, hyprland, nix-colors, home-manager, jolt, }: { nixosModules = { default = { lib, ... }: { imports = [ (import ./modules/nixos/default.nix inputs) ]; options.hyperdeepnix = (import ./config.nix lib).hyperdeepnixOptions; config = { nixpkgs.config.allowUnfree = true; nixpkgs.overlays = [ (final: prev: { pyprland = pyprland.packages.${final.system}.default; wiremix = wiremix.packages.${final.system}.default; jolt = jolt.packages.${final.system}.default; }) ]; }; }; }; homeManagerModules = { default = { lib, osConfig ? { }, ... }: { imports = [ nix-colors.homeManagerModules.default (import ./modules/home-manager/default.nix inputs) ]; options.hyperdeepnix = (import ./config.nix lib).hyperdeepnixOptions; config = lib.mkIf (osConfig ? hyperdeepnix) { hyperdeepnix = osConfig.hyperdeepnix; }; }; }; }; }