{
  config,
  lib,
  pkgs,
  ...
}: let
  cfg = config.hive.programs.creative;
in {
  options.hive.programs.creative = {
    enable = lib.mkEnableOption "Enable creative programs (video/image editing, etc.)";
    image-management = lib.mkOption {
      type = lib.types.bool;
      default = true;
      description = ''
        Enable image management tools.
      '';
    };
    image-editing = lib.mkOption {
      type = lib.types.bool;
      default = false;
      description = ''
        Enable image editing tools.
      '';
    };
    image-raw-processing = lib.mkOption {
      type = lib.types.bool;
      default = false;
      description = ''
        Enable Darktable for raw processing.
      '';
    };
    video-editing-light = lib.mkOption {
      type = lib.types.bool;
      default = false;
      description = ''
        Enable light video editing tools.
      '';
    };
    video-editing-heavy = lib.mkOption {
      type = lib.types.bool;
      default = false;
      description = ''
        Enable heavy video editing tools.
      '';
    };
    daws = lib.mkOption {
      type = lib.types.bool;
      default = false;
      description = ''
        Enable DAWs (currently bitwig beta)
      '';
    };
  };

  config = lib.mkIf cfg.enable {
    environment.systemPackages = with pkgs;
      lib.optionals cfg.image-editing [gimp krita drawio]
      ++ lib.optional cfg.image-management digikam
      ++ lib.optionals cfg.image-raw-processing [
        darktable
        rawtherapee
        enblend-enfuse
        hdrmerge
        hugin
      ]
      ++ lib.optionals cfg.video-editing-light [ffmpeg losslesscut-bin]
      ++ lib.optionals cfg.video-editing-heavy [
        davinci-resolve
        hive.transcode-davinci-resolve
        kdePackages.kdenlive
      ]
      ++ lib.optional cfg.daws bitwig-studio-latest;
  };
}
