{
  config,
  lib,
  ...
}: let
  inherit (config.rose-pine) sources;

  cfg = config.programs.swaylock.rose-pine;

  themeName =
    if (cfg.flavor == "main")
    then "rose-pine"
    else "rose-pine-${cfg.flavor}";
in {
  options.programs.swaylock.rose-pine = {
    enable =
      lib.mkEnableOption "Rosé Pine theme"
      // {
        /*
        global `rose-pine.enable` purposefully doesn't work here in
        configurations with a `home.stateVersion` that is >= 23.05

        this is because the upstream module will automatically enable itself if
        `programs.swaylock.settings` is set in configurations with a
        `home.stateVersion` that is < 23.05. so, we can't use the
        `programs.swaylock.enable` option to guard against defining this like we
        usually do, as when the upstream `enable` option is unset on these
        systems it checks that same `settings` option we would be defining if
        *our* and the upstream's `enable` option is `true` ...leading to a case
        of infinite recursion where `programs.swaylock.settings` is only being
        defined if `programs.swaylock.settings` is defined

        debugging this was the most confusing and horrifying thing i've had to
        deal with throughout working on this project.
        - @getchoo
        */
        default = lib.versionAtLeast config.home.stateVersion "23.05" && config.rose-pine.enable;
        defaultText = lib.literalExpression ''
          `rose-pine.enable` if `home.stateVersion` is >= 23.05, false otherwise.

          Yes this is weird, and there's a funny story about it in the code comments.
        '';
      };

    flavor = lib.rp.mkFlavorOpt "swaylock";
  };

  config = lib.mkIf cfg.enable {
    programs.swaylock.settings = lib.rp.fromINI (sources.swaylock + "/${themeName}");
  };
}
