{ config
, lib
, sources
, ...
}:
let
  cfg = config.programs.btop.catppuccin;
  enable = cfg.enable && config.programs.btop.enable;

  themeFile = "catppuccin_${cfg.flavour}.theme";
  themePath = "/themes/${themeFile}";
  theme = sources.btop + themePath;
in
{
  options.programs.btop.catppuccin =
    lib.ctp.mkCatppuccinOpt "btop";

  config = lib.mkIf enable
    {
      assertions = [
        (lib.ctp.assertXdgEnabled "btop")
      ];

      xdg.configFile."btop${themePath}".source = theme;

      programs.btop.settings.color_theme = themeFile;
    };
}
