From 0c4476c4d7a971b3802dd460dd258ad755bb4567 Mon Sep 17 00:00:00 2001 From: Leander Scherer Date: Mon, 18 May 2026 18:22:27 +0200 Subject: chore(jellyfin): replace jellyfin-deskop, as video playback currently broken, with jellyfin-mpv-shim --- modules/programs/jellyfin-mpv-shim.nix | 44 ++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 18 deletions(-) (limited to 'modules/programs') diff --git a/modules/programs/jellyfin-mpv-shim.nix b/modules/programs/jellyfin-mpv-shim.nix index 681add5..b4306c2 100644 --- a/modules/programs/jellyfin-mpv-shim.nix +++ b/modules/programs/jellyfin-mpv-shim.nix @@ -4,36 +4,44 @@ lib, ... }: - let - inherit (lib) optionalAttrs; - in { systemd.user.services.jellyfin-mpv-shim.Service.Environment = [ "ENABLE_HDR_WSI=1" ]; + # mpvConfig only supports flat key=value; write full mpv.conf to include profile sections + xdg.configFile."jellyfin-mpv-shim/mpv.conf".text = '' + vo=gpu-next + gpu-api=vulkan + hwdec=vaapi + target-colorspace-hint=yes + target-contrast=inf + target-peak=500 + hdr-compute-peak=yes + deband=yes + video-sync=display-resample + + [sdr-to-hdr] + profile-cond=p["video-params/gamma"] ~= nil and p["video-params/gamma"] ~= "pq" and p["video-params/gamma"] ~= "hlg" + profile-restore=copy-equal + inverse-tone-mapping=yes + tone-mapping=spline + tone-mapping-mode=rgb + gamut-mapping-mode=clip + target-trc=pq + target-prim=bt.2020 + ''; + services.jellyfin-mpv-shim = { enable = true; settings = { player_name = "mpv-shim"; - allow_transcode_to_h256 = true; + allow_transcode_to_h265 = true; }; - mpvConfig = { - vo = "gpu-next"; - gpu-api = "vulkan"; - target-colorspace-hint = "yes"; - target-peak = 500; + mpvBindings = { UP = "add chapter 1"; DOWN = "add chapter -1"; - } - // (optionalAttrs false { - target-trc = "pq"; - target-prim = "bt.2020"; - #target-peak = 406; - #tone-mapping = "spline"; - #tone-mapping-mode = "rgb"; - inverse-tone-mapping = "yes"; - }); + }; }; }; } -- cgit v1.3.1