From bd75285889625207053e1164990a8f89c07cb3ed Mon Sep 17 00:00:00 2001 From: kenji Date: Mon, 5 Jan 2026 22:47:11 -0600 Subject: [PATCH] add(apps): jellyfin-mpv-shim proper --- apps/jellyfin-mpv-shim/conf.json.template | 117 ---------------------- apps/jellyfin-mpv-shim/default.nix | 40 ++++++-- apps/matugen/config.toml | 4 - apps/matugen/default.nix | 1 - mpv-shot0001.jpg | Bin 0 -> 32365 bytes 5 files changed, 33 insertions(+), 129 deletions(-) delete mode 100644 apps/jellyfin-mpv-shim/conf.json.template create mode 100644 mpv-shot0001.jpg diff --git a/apps/jellyfin-mpv-shim/conf.json.template b/apps/jellyfin-mpv-shim/conf.json.template deleted file mode 100644 index 97812b6..0000000 --- a/apps/jellyfin-mpv-shim/conf.json.template +++ /dev/null @@ -1,117 +0,0 @@ -{ - "allow_transcode_to_h265": false, - "always_transcode": false, - "audio_output": "hdmi", - "auto_play": true, - "check_updates": false, - "client_uuid": "d7364f8e-c8bc-4442-982c-81848f474d48", - "connect_retry_mins": 0, - "direct_paths": false, - "discord_presence": true, - "display_mirroring": false, - "enable_gui": true, - "enable_osc": true, - "force_audio_codec": null, - "force_set_played": false, - "force_video_codec": null, - "fullscreen": true, - "health_check_interval": 300, - "idle_cmd": null, - "idle_cmd_delay": 60, - "idle_ended_cmd": null, - "idle_when_paused": false, - "ignore_ssl_cert": false, - "kb_debug": "~", - "kb_fullscreen": "f", - "kb_kill_shader": "k", - "kb_menu": "c", - "kb_menu_down": "down", - "kb_menu_esc": "esc", - "kb_menu_left": "left", - "kb_menu_ok": "enter", - "kb_menu_right": "right", - "kb_menu_up": "up", - "kb_next": ">", - "kb_pause": "space", - "kb_prev": "<", - "kb_stop": "q", - "kb_unwatched": "u", - "kb_watched": "w", - "lang": null, - "lang_filter": "und,eng,jpn,mis,mul,zxx", - "lang_filter_audio": false, - "lang_filter_sub": false, - "local_kbps": 2147483, - "log_decisions": false, - "media_ended_cmd": null, - "media_key_seek": true, - "media_keys": true, - "menu_mouse": true, - "mpv_ext": false, - "mpv_ext_ipc": null, - "mpv_ext_no_ovr": false, - "mpv_ext_path": null, - "mpv_ext_start": true, - "mpv_log_level": "info", - "notify_updates": false, - "play_cmd": null, - "playback_timeout": 30, - "player_name": "hakase", - "pre_media_cmd": null, - "prefer_transcode_to_h265": false, - "raise_mpv": true, - "remote_direct_paths": false, - "remote_kbps": 10000, - "sanitize_output": true, - "screenshot_dir": null, - "screenshot_menu": true, - "seek_down": -60, - "seek_h_exact": false, - "seek_left": -5, - "seek_right": 5, - "seek_up": 60, - "seek_v_exact": false, - "shader_pack_custom": false, - "shader_pack_enable": true, - "shader_pack_profile": null, - "shader_pack_remember": true, - "shader_pack_subtype": "lq", - "skip_credits_always": false, - "skip_credits_enable": true, - "skip_intro_always": false, - "skip_intro_enable": true, - "stop_cmd": null, - "stop_idle": false, - "subtitle_color": "#FFFFFFFF", - "subtitle_position": "bottom", - "subtitle_size": 100, - "svp_enable": false, - "svp_socket": null, - "svp_url": "http://127.0.0.1:9901/", - "sync_attempts": 5, - "sync_max_delay_skip": 300, - "sync_max_delay_speed": 50, - "sync_method_thresh": 2000, - "sync_osd_message": true, - "sync_revert_seek": true, - "sync_speed_attempts": 3, - "sync_speed_time": 1000, - "thumbnail_enable": true, - "thumbnail_osc_builtin": true, - "thumbnail_preferred_size": 320, - "tls_client_cert": null, - "tls_client_key": null, - "tls_server_ca": null, - "transcode_4k": false, - "transcode_av1": false, - "transcode_dolby_vision": true, - "transcode_hdr": false, - "transcode_hevc": false, - "transcode_hi10p": false, - "transcode_warning": true, - "use_web_seek": false, - "write_logs": false, - "use_mpv_config": true, - "menu_style": "osc", - "osc_color": "{{colors.primary.default.hex}}" -} diff --git a/apps/jellyfin-mpv-shim/default.nix b/apps/jellyfin-mpv-shim/default.nix index ac73203..c65c7be 100644 --- a/apps/jellyfin-mpv-shim/default.nix +++ b/apps/jellyfin-mpv-shim/default.nix @@ -1,7 +1,37 @@ {pkgs, ...}: { - home.packages = with pkgs; [ - jellyfin-mpv-shim - ]; + services.jellyfin-mpv-shim = { + enable = true; + package = pkgs.jellyfin-mpv-shim; + settings = { + 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; + }; + }; wayland.windowManager.hyprland.settings.windowrulev2 = [ # --- JELLYFIN MPV SHIM --- @@ -12,8 +42,4 @@ "idleinhibit focus, class:^(jellyfin-mpv-shim)$" "noblur, class:^(jellyfin-mpv-shim)$" ]; - - wayland.windowManager.hyprland.settings.exec-once = [ - "uwsm app -- jellyfin-mpv-shim" - ]; } diff --git a/apps/matugen/config.toml b/apps/matugen/config.toml index 2d12a2e..7897ddb 100644 --- a/apps/matugen/config.toml +++ b/apps/matugen/config.toml @@ -51,10 +51,6 @@ input_path = "~/.config/matugen/templates/mako" output_path = "~/.config/mako/config" post_hook = "makoctl reload" -[templates.jellyfin-mpv-shim] -input_path = "~/.config/matugen/templates/jellyfin-mpv-shim" -output_path = "~/.config/jellyfin-mpv-shim/conf.json" - [templates.vicinae] input_path = "~/.config/matugen/templates/vicinae" output_path = "~/.local/share/vicinae/themes/matugen.toml" diff --git a/apps/matugen/default.nix b/apps/matugen/default.nix index 320e0ef..ee46fb5 100644 --- a/apps/matugen/default.nix +++ b/apps/matugen/default.nix @@ -22,7 +22,6 @@ home.file.".config/matugen/templates/hyprlock".source = ./templates/hyprlock; home.file.".config/matugen/templates/starship".source = ./templates/starship; home.file.".config/matugen/templates/waybar".source = ./templates/waybar; - home.file.".config/matugen/templates/jellyfin-mpv-shim".source = ../jellyfin-mpv-shim/conf.json.template; home.file.".config/matugen/templates/vicinae".text = '' # Vicinae Matugen Theme Template diff --git a/mpv-shot0001.jpg b/mpv-shot0001.jpg new file mode 100644 index 0000000000000000000000000000000000000000..49d57b23a58e16e291011ff86d00f0688c210a08 GIT binary patch literal 32365 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 literal 0 HcmV?d00001