{ description = "My personal Hyprland NixOS config"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; stylix = { url = "github:danth/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; nvf = { url = "github:notashelf/nvf"; inputs.nixpkgs.follows = "nixpkgs"; }; zen-browser = { url = "github:youwen5/zen-browser-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; dolphin-overlay = { url = "github:rumboon/dolphin-overlay"; inputs.nixpkgs.follows = "nixpkgs"; }; floatc = { url = "git+https://git.stribrny.org/max_ag/floating-calculator"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { nixpkgs, ... } @ inputs: let hmOptions = { useUserPackages = true; useGlobalPkgs = true; sharedModules = [ inputs.stylix.homeModules.stylix ]; }; mkModules = device-name: [ ./modules/shared/hyprland.nix ./modules/shared/git.nix ./modules/shared/fonts.nix ./modules/shared/nvf.nix ./modules/${device-name}/configuration.nix ./modules/${device-name}/hardware-configuration.nix inputs.home-manager.nixosModules.home-manager inputs.stylix.nixosModules.stylix { nixpkgs.overlays = [ inputs.dolphin-overlay.overlays.default ]; home-manager = hmOptions // { extraSpecialArgs = { inherit inputs device-name; }; }; } ]; mkSystem = device-name: nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs device-name; }; modules = mkModules device-name; }; in { nixosConfigurations = { max-laptop = mkSystem "laptop"; max-main = mkSystem "main"; }; }; }