{ description = "My personal Hyprland NixOS config"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nvf = { url = "github:notashelf/nvf/v0.8"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; stylix = { url = "github:danth/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; hyprland = { url = "github:hyprwm/Hyprland"; inputs.nixpkgs.follows = "nixpkgs"; }; zen-browser = { url = "github:0xc000022070/zen-browser-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; dolphin-overlay = { url = "github:rumboon/dolphin-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; hexecute = { url = "github:ThatOtherAndrew/Hexecute"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = {nixpkgs, ...} @ inputs: let mkSystem = device-name: nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs device-name; }; modules = [ ./configuration/${device-name}/configuration.nix ./configuration/${device-name}/hardware-configuration.nix inputs.home-manager.nixosModules.default inputs.stylix.nixosModules.stylix { nixpkgs.overlays = [inputs.dolphin-overlay.overlays.default]; } { home-manager = { useUserPackages = true; useGlobalPkgs = true; extraSpecialArgs = {inherit inputs device-name;}; backupFileExtension = "backup_nix"; users.maxag = ./home/${device-name}/home.nix; sharedModules = [ inputs.stylix.homeModules.stylix ]; }; } ]; }; in { nixosConfigurations = { max-laptop = mkSystem "laptop"; max-main = mkSystem "main"; }; }; }