{ lib, config, ... }:
with lib;
let
  cfg = config.my.services.wallpaper;
in
{
  options.my.services.wallpaper = {
    enable = mkEnableOption "wallpaper changer";
    frequency = mkOption {
      type = types.str;
      default = "30m";
    };
    target = mkOption {
      type = types.str;
      default = "graphical-session.target";
    };
  };

  config = mkIf cfg.enable {
    systemd.user.services.wallpaper = {
      script = "${getExe config.my.programs.wallpaper.package} -r -v";
      wantedBy = [ cfg.target ];
      after = [ cfg.target ];
      serviceConfig = {
        Restart = "always";
        RuntimeMaxSec = cfg.frequency;
        ExitType = "cgroup";
      };
    };
  };
}