diff --git a/apps/jellyfin-mpv-shim/default.nix b/apps/jellyfin-mpv-shim/default.nix index c65c7be..57b7fee 100644 --- a/apps/jellyfin-mpv-shim/default.nix +++ b/apps/jellyfin-mpv-shim/default.nix @@ -2,37 +2,64 @@ services.jellyfin-mpv-shim = { enable = true; package = pkgs.jellyfin-mpv-shim; + + mpvConfig = { + osc = false; + osd-bar = false; + load-scripts = true; + input-vo-keyboard = true; + input-default-bindings = true; + + # Automatic subtitle selection logic: + # Prefer English subtitles + slang = "eng,en"; + # Prefer Japanese/Non-English audio first (if that's what you usually watch) + # or just ensure English subs are picked when audio isn't English. + sub-auto = "fuzzy"; + sub-visibility = "yes"; + }; + + mpvBindings = { + "j" = "cycle sub"; + "S-j" = "cycle sub rev"; + "v" = "cycle sub-visibility"; + }; + settings = { + use_mpv_config = false; + enable_osc = false; + menu_mouse = true; + + # Shim specific auto-sub logic + # "subs-fallback" is a known good setting for the shim to handle this + subtitle_color = "#FFFFFFFF"; + subtitle_size = 100; + audio_output = "hdmi"; auto_play = true; - check_updates = false; - discord_presence = true; - enable_gui = true; - enable_osc = true; fullscreen = true; - menu_mouse = true; player_name = "hakase"; - raise_mpv = true; - shader_pack_enable = true; - shader_pack_remember = true; - shader_pack_subtype = "lq"; - skip_credits_enable = true; - skip_intro_enable = true; - thumbnail_enable = true; - thumbnail_osc_builtin = true; - use_mpv_config = true; - menu_style = "osc"; - # Good UI/Quality defaults remote_kbps = 100000; local_kbps = 1000000; - lang_filter = "und,eng,jpn,mis,mul,zxx"; - subtitle_size = 100; - subtitle_color = "#FFFFFFFF"; - seek_left = -5; - seek_right = 5; }; }; + # Modern OSC + Quality scripts + home.file.".config/jellyfin-mpv-shim/scripts/uosc" = { + source = "${pkgs.mpvScripts.uosc}/share/mpv/scripts/uosc"; + }; + home.file.".config/jellyfin-mpv-shim/scripts/thumbfast.lua" = { + source = "${pkgs.mpvScripts.thumbfast}/share/mpv/scripts/thumbfast.lua"; + }; + home.file.".config/jellyfin-mpv-shim/scripts/autocrop.lua" = { + source = "${pkgs.mpvScripts.autocrop}/share/mpv/scripts/autocrop.lua"; + }; + + home.file.".config/jellyfin-mpv-shim/fonts" = { + source = "${pkgs.mpvScripts.uosc}/share/fonts"; + recursive = true; + }; + wayland.windowManager.hyprland.settings.windowrulev2 = [ # --- JELLYFIN MPV SHIM --- "float, class:^(jellyfin-mpv-shim)$" @@ -42,4 +69,4 @@ "idleinhibit focus, class:^(jellyfin-mpv-shim)$" "noblur, class:^(jellyfin-mpv-shim)$" ]; -} +} \ No newline at end of file