{
  lib,
  config,
  ...
}:
let
  inherit (lib) mkEnableOption mkIf;
  inherit (lib.marleyos) enabled;

  cfg = config.marleyos.programs.cava;
  inherit (config.marleyos.theme) colors;
in
{
  options.marleyos.programs.cava.enable = mkEnableOption "cava";

  config = mkIf cfg.enable {
    programs.cava = {
      # FIX: Re-enable once https://github.com/NixOS/nixpkgs/pull/355948 is
      # ported to nixpkgs/unstable
      enable = false;

      rose-pine = mkIf colors.isRosePine enabled;

      # TODO: disable this when mpd is not enabled? Can that be detected on non
      # NixOS systems?
      settings = {
        input = {
          method = "fifo";
          source = "/tmp/mpd.fifo";
        };
      };
    };
  };
}
