config.nix/modules/media/video.nix
2026-03-29 08:15:43 +02:00

42 lines
1.2 KiB
Nix

{
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;
};
};
};
}