{
    inputs.nixpkgs.url = "nixpkgs/nixos-22.11";
    inputs.nixpkgs-unstable.url = "nixpkgs/nixos-unstable";

    inputs.nix-matlab.url = "gitlab:doronbehar/nix-matlab";
    # inputs.home-manager.url = "github:nix-community/home-manager";

    outputs = { self, nixpkgs, nixpkgs-unstable, nix-matlab, ... }@attrs:
      let
        system = "x86_64-linux";
        overlay-unstable = final: prev: {
          # unstable = nixpkgs-unstable.legacyPackages.${prev.system};
          # use this variant if unfree packages are needed:
          unstable = import nixpkgs-unstable {
            inherit system;
            config.allowUnfree = true;
          };
        };
      in {
        nixosConfigurations.nixos = nixpkgs.lib.nixosSystem {
          inherit system;
          specialArgs = attrs;
          modules = [
            # Overlays-module makes "pkgs.unstable" available in configuration.nix
            ({ config, pkgs, ... }: {
              nixpkgs.overlays = [ overlay-unstable nix-matlab.overlay ];
            })
            ./configuration.nix
          ];
        };
      };
  }