From 7e5b6783ba74e5a5e2e960960f411b7c2bc76704 Mon Sep 17 00:00:00 2001 From: Elec3137 Date: Thu, 26 Feb 2026 14:05:34 -0800 Subject: [PATCH] graphical/mpv: add useFullFFmpeg option --- graphical/mpv.nix | 46 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/graphical/mpv.nix b/graphical/mpv.nix index 2c3e544..114034c 100644 --- a/graphical/mpv.nix +++ b/graphical/mpv.nix @@ -15,6 +15,17 @@ in package = lib.mkPackageOption pkgs name { }; + useFullFFmpeg = lib.mkOption { + type = lib.types.bool; + default = false; + description = '' + Use pkgs.ffmpeg-full within mpv, for more media support. + For instance, this makes jxl viewing and screenshots possible. + + However, this will (almost certainly) require a local compilation of mpv + ''; + }; + extraConfig = lib.mkOption { type = lib.types.lines; default = '' @@ -44,20 +55,27 @@ in config = lib.mkIf cfg.enable { environment.systemPackages = [ - (cfg.package.override { - extraMakeWrapperArgs = [ - "--add-flags" - "--config-dir=${ - pkgs.symlinkJoin { - inherit name; - paths = [ - (pkgs.writeTextDir "${name}.conf" cfg.extraConfig) - (pkgs.writeTextDir "input.conf" cfg.extraInputConf) - ]; - } - }" - ]; - }) + ( + cfg.package.override { + extraMakeWrapperArgs = [ + "--add-flags" + "--config-dir=${ + pkgs.symlinkJoin { + inherit name; + paths = [ + (pkgs.writeTextDir "${name}.conf" cfg.extraConfig) + (pkgs.writeTextDir "input.conf" cfg.extraInputConf) + ]; + } + }" + ]; + } + // lib.optionalAttrs cfg.useFullFFmpeg { + mpv-unwrapped = pkgs.mpv-unwrapped.override { + ffmpeg = pkgs.ffmpeg-full; + }; + } + ) ]; }; }