61 lines · 1.5 KB
flake:

{ config, lib, pkgs, ... }:

let
  cfg = config.programs.spank;
  spankPkg = flake.packages.${pkgs.stdenv.hostPlatform.system}.default;
in
{
  options.programs.spank = {
    enable = lib.mkEnableOption "spank - yells when you slap the laptop";

    package = lib.mkOption {
      type = lib.types.package;
      default = spankPkg;
      defaultText = lib.literalExpression "inputs.spank.packages.\${system}.default";
      description = "The spank package to use.";
    };

    mode = lib.mkOption {
      type = lib.types.enum [ "pain" "sexy" "halo" ];
      default = "pain";
      description = "Audio mode to use.";
    };

    fast = lib.mkOption {
      type = lib.types.bool;
      default = false;
      description = "Enable faster detection tuning.";
    };

    minAmplitude = lib.mkOption {
      type = lib.types.nullOr lib.types.float;
      default = null;
      description = "Minimum amplitude threshold (0.0-1.0).";
    };

    cooldown = lib.mkOption {
      type = lib.types.nullOr lib.types.int;
      default = null;