{
  config,
  pkgs,
  lib,
  ...
}: let
  cfg = config.youthlic.programs.wluma;
in {
  options = {
    youthlic.programs.wluma = {
      enable = lib.mkEnableOption "wluma";
      config = lib.mkOption {
        type = lib.types.path;
        example = ./config.toml;
        description = ''
          path to config file of wluma
        '';
      };
      package = lib.mkOption {
        type = lib.types.package;
        example = pkgs.wluam;
        default = pkgs.wluma;
        description = ''
          package of wluma
        '';
      };
    };
  };
  config = lib.mkIf cfg.enable {
    home.packages = [
      cfg.package
    ];
    xdg.configFile."wluma/config.toml" = {
      enable = true;
      source = cfg.config;
    };
    systemd.user.services.wluma = {
      Unit = {
        Description = "Adjusting screen brightness based on screen contents and amount of ambient light";
        PartOf = ["graphical-session.target"];
        After = ["graphical-session.target"];
      };
      Service = {
        ExecStart = ["${lib.getExe cfg.package}"];
        Restart = "always";
        EnvironmentFile = ["-%E/wluma/service.conf"];
        PrivateNetwork = true;
        PrivateMounts = false;
      };
      Install = {
        WantedBy = ["graphical-session.target"];
      };
    };
  };
}
