diff --git a/pkgs/applications/video/jellyfin-mpv-shim/default.nix b/pkgs/applications/video/jellyfin-mpv-shim/default.nix index e25f74c2dc9..121cd5d3017 100644 --- a/pkgs/applications/video/jellyfin-mpv-shim/default.nix +++ b/pkgs/applications/video/jellyfin-mpv-shim/default.nix @@ -1,6 +1,21 @@ -{ lib, buildPythonApplication, fetchPypi -, mpv, python-mpv-jsonipc, jellyfin-apiclient-python -, pillow, tkinter, pystray, jinja2, pywebview }: +{ lib +, buildPythonApplication +, copyDesktopItems +, fetchPypi +, makeDesktopItem +, flask +, jellyfin-apiclient-python +, jinja2 +, mpv +, pillow +, pyqtwebengine +, pystray +, python-mpv-jsonipc +, pywebview +, qt5 +, tkinter +, werkzeug +}: buildPythonApplication rec { pname = "jellyfin-mpv-shim"; @@ -11,8 +26,41 @@ buildPythonApplication rec { sha256 = "sha256-Fo1auMiYUgJrJGJII+FfHspcke0r/VSSXzGwVNIHtEE="; }; - patches = [ - ./disable-desktop-client.patch + propagatedBuildInputs = [ + jellyfin-apiclient-python + mpv + pillow + python-mpv-jsonipc + + # gui dependencies + pystray + tkinter + + # display_mirror dependencies + jinja2 + pywebview + + # desktop dependencies + flask + pyqtwebengine + werkzeug + ]; + + nativeBuildInputs = [ + copyDesktopItems + qt5.wrapQtAppsHook + ]; + + desktopItems = [ + (makeDesktopItem { + name = "Jellyfin MPV Shim Desktop"; + exec = "jellyfin-mpv-desktop"; + icon = "jellyfin-mpv-desktop"; + desktopName = "jellyfin-mpv-desktop"; + comment = "MPV-based desktop and cast client for Jellyfin"; + genericName = "MPV-based desktop and cast client for Jellyfin"; + categories = "Video;AudioVideo;TV;Player"; + }) ]; # override $HOME directory: @@ -32,20 +80,14 @@ buildPythonApplication rec { --replace "notify_updates: bool = True" "notify_updates: bool = False" ''; - propagatedBuildInputs = [ - jellyfin-apiclient-python - mpv - pillow - python-mpv-jsonipc + postInstall = '' + mkdir -p $out/share/pixmaps + cp jellyfin_mpv_shim/integration/jellyfin-256.png $out/share/pixmaps/jellyfin-mpv-desktop.png + ''; - # gui dependencies - pystray - tkinter - - # display_mirror dependencies - jinja2 - pywebview - ]; + postFixup = '' + wrapQtApp $out/bin/jellyfin-mpv-desktop + ''; # no tests doCheck = false; diff --git a/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch b/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch deleted file mode 100644 index 996225efb3a..00000000000 --- a/pkgs/applications/video/jellyfin-mpv-shim/disable-desktop-client.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/setup.py b/setup.py -index a831959..2206e6e 100644 ---- a/setup.py -+++ b/setup.py -@@ -25,7 +25,6 @@ setup( - entry_points={ - 'console_scripts': [ - 'jellyfin-mpv-shim=jellyfin_mpv_shim.mpv_shim:main', -- 'jellyfin-mpv-desktop=jellyfin_mpv_shim.mpv_shim:main_desktop', - ] - }, - classifiers=[