2023-09-08 16:10:15 +02:00
|
|
|
{
|
2023-10-13 21:04:24 +02:00
|
|
|
config,
|
|
|
|
lib,
|
2023-09-08 16:10:15 +02:00
|
|
|
pkgs,
|
|
|
|
...
|
2024-05-05 12:38:40 +02:00
|
|
|
}: let
|
2024-07-15 23:18:25 +02:00
|
|
|
cfg = config.poz.programs.mpv;
|
|
|
|
inherit (config.poz.other.system) username;
|
2024-05-05 12:38:40 +02:00
|
|
|
|
2024-08-25 20:17:14 +02:00
|
|
|
inherit (lib.attrsets) attrValues;
|
2024-07-25 11:45:44 +02:00
|
|
|
inherit (lib.modules) mkIf;
|
|
|
|
inherit (lib.options) mkEnableOption mkOption;
|
2024-05-05 19:13:38 +02:00
|
|
|
inherit (lib.types) nullOr str;
|
2023-10-13 21:04:24 +02:00
|
|
|
in {
|
2024-07-15 23:18:25 +02:00
|
|
|
options.poz.programs.mpv = {
|
2024-05-05 19:13:38 +02:00
|
|
|
enable = mkEnableOption "mpv";
|
|
|
|
gpu = mkOption {
|
|
|
|
description = "gpu used to render videos played through mpv";
|
|
|
|
type = nullOr str;
|
|
|
|
default = null;
|
|
|
|
};
|
|
|
|
};
|
2023-10-13 21:04:24 +02:00
|
|
|
|
|
|
|
config = mkIf cfg.enable {
|
2024-02-29 00:29:56 +01:00
|
|
|
home-manager.users.${username} = {
|
2023-10-13 21:04:24 +02:00
|
|
|
programs.mpv = {
|
|
|
|
enable = true;
|
|
|
|
config = {
|
|
|
|
vo = "gpu-next";
|
|
|
|
hwdec = "auto";
|
|
|
|
gpu-api = "vulkan";
|
2024-05-05 19:13:38 +02:00
|
|
|
vulkan-device = mkIf (cfg.gpu != null) cfg.gpu;
|
2023-10-13 21:04:24 +02:00
|
|
|
volume = 50;
|
|
|
|
osc = "no";
|
|
|
|
osd-bar = "no";
|
|
|
|
border = "no";
|
|
|
|
};
|
2024-08-25 20:17:14 +02:00
|
|
|
scripts = attrValues {
|
|
|
|
inherit (pkgs.mpvScripts)
|
|
|
|
mpris
|
|
|
|
thumbfast
|
|
|
|
sponsorblock
|
|
|
|
uosc
|
|
|
|
;
|
|
|
|
};
|
2023-10-13 21:04:24 +02:00
|
|
|
};
|
2023-09-08 16:10:15 +02:00
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|