{ description = "A simple NixOS flake"; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05"; helix.url = "github:helix-editor/helix/master"; hyprland.url = "github:hyprwm/Hyprland"; home-manager = { url = "github:nix-community/home-manager/release-25.05"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { self, nixpkgs, home-manager, ... }@inputs: let system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; config.allowUnfree = true; }; in { nixosConfigurations.haskell = nixpkgs.lib.nixosSystem { system = "x86_64-linux"; specialArgs = { inherit inputs; }; modules = [ ./configuration.nix ({ pkgs, ... }: { # Define the overlay inline or in a separate file nixpkgs.overlays = [ (final: prev: { openmodelica = final.callPackage ./nixpkgs/openmodelica.nix { }; }) ]; }) home-manager.nixosModules.home-manager { home-manager.useGlobalPkgs = true; home-manager.useUserPackages = true; home-manager.users.allen = import ./home.nix { inherit inputs; inherit pkgs; }; } ]; }; }; }