{
  description = "marleyOS";

  outputs = inputs:
    inputs.snowfall-lib.mkFlake {
      inherit inputs;
      src = ./.;

      snowfall = {
        namespace = "marleyos";
        title = "marleyOS";
      };

      channels-config = {
        allowUnfree = true;
      };

      overlays = with inputs; [
        lix.overlays.default
        nur.overlays.default
        marleyvim.overlays.default
      ];

      systems.modules.nixos = with inputs; [
        rose-pine.nixosModules.rose-pine
      ];

      systems.modules.darwin = with inputs; [
        lix.nixosModules.default
      ];

      homes.modules = with inputs; [
        rose-pine.homeManagerModules.rose-pine
      ];

      outputs-builder = channels: {
        formatter = channels.nixpkgs.alejandra;
      };

      alias = {
        shells.default = "nix";
      };
    };

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

    nur = {
      url = "github:nix-community/NUR";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    lix = {
      url = "https://git.lix.systems/lix-project/nixos-module/archive/2.91.1-1.tar.gz";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    snowfall-lib = {
      url = "github:snowfallorg/lib";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    darwin = {
      url = "github:LnL7/nix-darwin";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    home-manager = {
      url = "github:nix-community/home-manager";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    nixgl = {
      url = "github:nix-community/nixGL";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    rose-pine.url = "git+https://codewith.babesonthe.net/punkfairie/rose-pine-nix";

    marleyvim.url = "git+https://codewith.babesonthe.net/punkfairie/marleyvim";

    wezterm = {
      url = "github:wez/wezterm?dir=nix";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    # Rose pine themes that aren't included in the above flake:
    # TODO: Integrate these to punkfairie/rose-pine-nix.
    rose-pine-amfora = {
      url = "github:rose-pine/amfora";
      flake = false;
    };
    rose-pine-qt5ct = {
      url = "github:piperbly/rose-pine-qt5ct";
      flake = false;
    };
    rose-pine-hyprcursor.url = "github:ndom91/rose-pine-hyprcursor";

    # Rofi
    rofi-themes = {
      url = "git+https://codewith.babesonthe.net/punkfairie/rofi-themes";
      flake = false;
    };
  };
}