{ config, lib, pkgs, ... }: { options = { media = { video = { enable = lib.mkEnableOption "enable all video media"; mpv.enable = lib.mkEnableOption "enable mpv"; kdenlive.enable = lib.mkEnableOption "enable kdenlive"; tsukimi.enable = lib.mkEnableOption "enable tsukimi (jellyfin client)"; jellyfin.enable = lib.mkEnableOption "enable jellyin (jellyfin client)"; pipeline.enable = lib.mkEnableOption "enable pipeline (you/peertube client)"; }; }; }; config = { media.video = lib.mkIf config.media.video.enable { kdenlive.enable = lib.mkDefault true; mpv.enable = lib.mkDefault true; tsukimi.enable = lib.mkDefault true; jellyfin.enable = lib.mkDefault true; pipeline.enable = lib.mkDefault true; }; home.packages = with pkgs; [ (lib.mkIf (config.media.video.kdenlive.enable) kdePackages.kdenlive) (lib.mkIf (config.media.video.tsukimi.enable) tsukimi) (lib.mkIf (config.media.video.jellyfin.enable) jellyfin-desktop) (lib.mkIf (config.media.video.pipeline.enable) pipeline) ]; programs = { mpv = lib.mkIf config.media.video.mpv.enable { enable = true; }; }; }; }