MPV: Difference between revisions

DoggoBit (talk | contribs)
m lowercase name
Erethon (talk | contribs)
m Update broken nixpkgs links to point to the newer by-name package
 
(2 intermediate revisions by 2 users not shown)
Line 30: Line 30:
</syntaxhighlight>
</syntaxhighlight>
==== With Home Manager ====
==== With Home Manager ====
<syntaxhighlight lang="text">
<syntaxhighlight lang="text">home.packages = [  
home.packages = [  
   pkgs.mpv  
   pkgs.mpv  
];
];</syntaxhighlight>'''With mpvScripts'''<syntaxhighlight lang="nix">{ pkgs, ... }:
</syntaxhighlight>
{
  environment.systemPackages = with pkgs; [
    ( mpv.override { scripts = [
      mpvScripts.uosc
      mpvScripts.sponsorblock
    ]; } )
  ];
}</syntaxhighlight>
 
== Configuration ==
== Configuration ==


Line 75: Line 82:
To find more scripts run this in a terminal: <syntaxhighlight lang="bash">
To find more scripts run this in a terminal: <syntaxhighlight lang="bash">
nix search nixpkgs mpvScripts
nix search nixpkgs mpvScripts
</syntaxhighlight>The scripts are also defined in the following [https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/video/mpv/scripts Nixpkgs directory].
</syntaxhighlight>The scripts are also defined in the following [https://github.com/NixOS/nixpkgs/tree/master/pkgs/by-name/mp/mpv/scripts Nixpkgs directory].


==== Enabling additional features: where to find override options and using umpv ====
==== Enabling additional features: where to find override options and using umpv ====
The package override options are defined in the following [https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/video/mpv/default.nix Nixpkgs directory]. This includes a commonly used first party script called [https://github.com/mpv-player/mpv/blob/master/TOOLS/umpv umpv] which allows additional files to be appended to the playlist of an open instance. In the nix derivation of mpv, the umpv script is bundled into the program and can be ran from the command line with `umpv foo.ogg`. Note that umpv can only be ran with the name of the file being opened and cannot be ran with additional arguments or flags.
The package override options are defined in the following [https://github.com/NixOS/nixpkgs/blob/master/pkgs/by-name/mp/mpv/package.nix Nixpkgs directory]. This includes a commonly used first party script called [https://github.com/mpv-player/mpv/blob/master/TOOLS/umpv umpv] which allows additional files to be appended to the playlist of an open instance. In the nix derivation of mpv, the umpv script is bundled into the program and can be ran from the command line with `umpv foo.ogg`. Note that umpv can only be ran with the name of the file being opened and cannot be ran with additional arguments or flags.


For example, here is an overlay showing how to enable JACK audio support:
For example, here is an overlay showing how to enable JACK audio support:
Line 118: Line 125:
To address this problem, you can use the following package configuration for ffmpeg.
To address this problem, you can use the following package configuration for ffmpeg.


<syntaxhighlight lang="nix">
<syntaxhighlight lang="nix">programs.mpv = {
programs.mpv = {
   enable = true;
   enable = true;


Line 125: Line 131:
     pkgs.mpv-unwrapped.wrapper {
     pkgs.mpv-unwrapped.wrapper {
       mpv = pkgs.mpv-unwrapped.override {
       mpv = pkgs.mpv-unwrapped.override {
        ffmpeg = pkgs.ffmpeg-full;
      };
    }
  );
};</syntaxhighlight>On <code>nixos-unstable</code>, the <code>wrapper</code> attribute has been removed and instead a regular <code>override</code> can be used to adjust <code>mpv-unwrapped</code>:<syntaxhighlight lang="nix">
programs.mpv = {
  enable = true;
  package = (
    pkgs.mpv.override {
      mpv-unwrapped = pkgs.mpv-unwrapped.override {
         ffmpeg = pkgs.ffmpeg-full;
         ffmpeg = pkgs.ffmpeg-full;
       };
       };
Line 130: Line 147:
   );
   );
};
};
</syntaxhighlight>
</syntaxhighlight>