1
0
mirror of https://github.com/nix-community/home-manager synced 2024-06-26 08:28:30 +02:00

mpv: add defaultProfiles option

This commit is contained in:
Simon Bruder 2021-01-11 22:53:35 +01:00 committed by Robert Helgesson
parent d62bdaf938
commit 65d0e2d241
No known key found for this signature in database
GPG Key ID: 36BDAA14C2797E89

View File

@ -12,6 +12,7 @@ let
mpvOptions = with types; attrsOf mpvOptionDup;
mpvProfiles = with types; attrsOf mpvOptions;
mpvBindings = with types; attrsOf str;
mpvDefaultProfiles = with types; listOf str;
renderOption = option:
rec {
@ -45,6 +46,9 @@ let
concatStringsSep "\n"
(mapAttrsToList (name: value: "${name} ${value}") bindings);
renderDefaultProfiles = profiles:
renderOptions { profile = concatStringsSep "," profiles; };
mpvPackage = if cfg.scripts == [ ] then
pkgs.mpv
else
@ -115,6 +119,16 @@ in {
'';
};
defaultProfiles = mkOption {
description = ''
Profiles to be applied by default. Options set by them are overridden
by options set in <xref linkend="opt-programs.mpv.config"/>.
'';
type = mpvDefaultProfiles;
default = [ ];
example = [ "gpu-hq" ];
};
bindings = mkOption {
description = ''
Input configuration written to
@ -145,6 +159,8 @@ in {
}
(mkIf (cfg.config != { } || cfg.profiles != { }) {
xdg.configFile."mpv/mpv.conf".text = ''
${optionalString (cfg.defaultProfiles != [ ])
(renderDefaultProfiles cfg.defaultProfiles)}
${optionalString (cfg.config != { }) (renderOptions cfg.config)}
${optionalString (cfg.profiles != { }) (renderProfiles cfg.profiles)}
'';