diff --git a/pkgs/applications/video/mpv/default.nix b/pkgs/applications/video/mpv/default.nix index 61e3a7d895d..cefd5b66aed 100644 --- a/pkgs/applications/video/mpv/default.nix +++ b/pkgs/applications/video/mpv/default.nix @@ -38,9 +38,6 @@ , vapoursynthSupport ? false, vapoursynth ? null , archiveSupport ? false, libarchive ? null , jackaudioSupport ? false, libjack2 ? null - -# scripts you want to be loaded by default -, scripts ? [] }: with stdenv.lib; @@ -180,7 +177,6 @@ in stdenv.mkDerivation rec { ln -s ${freefont_ttf}/share/fonts/truetype/FreeSans.ttf $out/share/mpv/subfont.ttf # Ensure youtube-dl is available in $PATH for MPV wrapProgram $out/bin/mpv \ - --add-flags "--scripts=${concatStringsSep "," scripts}" \ --prefix LUA_PATH : "${luaPath}" \ --prefix LUA_CPATH : "${luaCPath}" \ '' + optionalString youtubeSupport '' diff --git a/pkgs/applications/video/mpv/scripts/mpris.nix b/pkgs/applications/video/mpv/scripts/mpris.nix new file mode 100644 index 00000000000..e98ba9bdc3f --- /dev/null +++ b/pkgs/applications/video/mpv/scripts/mpris.nix @@ -0,0 +1,28 @@ +{ stdenv, fetchFromGitHub, pkgconfig, gobjectIntrospection, mpv }: + +stdenv.mkDerivation rec { + name = "mpv-mpris-${version}.so"; + version = "0.1"; + + src = fetchFromGitHub { + owner = "hoyon"; + repo = "mpv-mpris"; + rev = "v${version}"; + sha256 = "0rsbrbv5q7vki59wdlx4cdkd0vvd79qgbjvdb3fn3li7aznvjwiy"; + }; + + nativeBuildInputs = [ pkgconfig ]; + + buildInputs = [ gobjectIntrospection mpv ]; + + installPhase = '' + cp mpris.so $out + ''; + + meta = with stdenv.lib; { + description = "MPRIS plugin for mpv"; + homepage = https://github.com/hoyon/mpv-mpris; + license = licenses.mit; + maintainers = with maintainers; [ jfrankenau ]; + }; +} diff --git a/pkgs/applications/video/mpv/wrapper.nix b/pkgs/applications/video/mpv/wrapper.nix new file mode 100644 index 00000000000..624c06414fd --- /dev/null +++ b/pkgs/applications/video/mpv/wrapper.nix @@ -0,0 +1,14 @@ +{ stdenv, symlinkJoin, makeWrapper, mpv, scripts ? [] }: + +symlinkJoin { + name = "mpv-with-scripts-${mpv.version}"; + + paths = [ mpv ]; + + buildInputs = [ makeWrapper ]; + + postBuild = '' + wrapProgram $out/bin/mpv \ + --add-flags "${stdenv.lib.concatMapStringsSep " " (x: "--script=" + x) scripts}" + ''; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index aabe94fef4c..3afb13b28fb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -17374,8 +17374,11 @@ with pkgs; xvSupport = !stdenv.isDarwin; }; + mpv-with-scripts = callPackage ../applications/video/mpv/wrapper.nix { }; + mpvScripts = { convert = callPackage ../applications/video/mpv/scripts/convert.nix {}; + mpris = callPackage ../applications/video/mpv/scripts/mpris.nix {}; }; mrpeach = callPackage ../applications/audio/pd-plugins/mrpeach { };