[PATCH 0/4] Add jellyfin-mpv-player and deps

  • Open
  • quality assurance status badge
Details
3 participants
  • Ian Eure
  • Liliana Marie Prikler
  • Sharlatan Hellseher
Owner
unassigned
Submitted by
Ian Eure
Severity
normal
I
I
Ian Eure wrote on 12 Nov 2023 05:13
(address . guix-patches@gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
cover.1699762188.git.ian@retrospec.tv
This patchset adds jellyfin-mpv-shim and a handful of Python dependencies it needs.

Ian Eure (4):
gnu: Add python-mpv-jsonipc.
gnu: Add python-jellyfin-apiclient.
gnu: Add python-pystray.
gnu: Add jellyfin-mpv-shim.

gnu/packages/python-xyz.scm | 61 +++++++++++++++++++++++++++++++++++++
gnu/packages/video.scm | 41 +++++++++++++++++++++++++
2 files changed, 102 insertions(+)


base-commit: af6105afc67a15a491a0a4fd18a28c9f801a0b94
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 05:16
[PATCH 01/14] gnu: Add emacs-dnt.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
38d6463959d226a7cf587410063f9c3878d2305f.1699740282.git.ian@retrospec.tv
* gnu/packages/emacs-xyz.scm (emacs-dnt): New variable.
---
gnu/packages/emacs-xyz.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (45 lines)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 1319c353cb..4648432441 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -135,6 +135,7 @@
;;; Copyright © 2023 Sergiu Ivanov <sivanov@colimite.fr>
;;; Copyright © 2023 Camilo Q.S. (Distopico) <distopico@riseup.net>
;;; Copyright © 2023 Thanos Apollo <public@thanosapollo.com>
+;;; Copyright © 2023 Ian Eure <ian@retrospec.tv>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -3294,6 +3295,30 @@ (define-public emacs-eww-lnum
incrementally confined in Isearch manner.")
(license license:gpl3+)))
+(define-public emacs-dnt
+ (let ((commit "d28d232d682094ab79cfa78c97668c6ebd327c8c")
+ (version "0.0.1")
+ (revision "1"))
+ (package
+ (name "emacs-dnt")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://codeberg.org/emacs-weirdware/dnt.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1bls9j1ibw0npjapslbrh6nmlbn3d4ajhjygsqlf6h9qg12sxm3r"))))
+ (inputs (list emacs-s))
+ (build-system emacs-build-system)
+ (home-page "https://codeberg.org/emacs-weirdware/dnt")
+ (synopsis "Strip trackers from URLs")
+ (description "Prevent advertisers from tracking you when you open
+URLs (or listen to podcasts) in Emacs.")
+ (license (list license:gpl3+)))))
+
;;;
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 05:16
[PATCH 1/4] gnu: Add python-mpv-jsonipc.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
cbf2f8556665f85c9a1b82e91a29af169a341e9d.1699762188.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-mpv-jsonipc): New variable.

Change-Id: I7aa01f25d873faa2a7dd8aa6ea54a1a3ae91006f
---
gnu/packages/python-xyz.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index e521c1580d..6669a6ab73 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -145,6 +145,7 @@
;;; Copyright © c4droid <c4droid@foxmail.com>
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name>
+;;; Copyright © 2023 Ian Eure <ian@retrospec.tv>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24652,6 +24653,22 @@ (define-public online-judge-tools
submitting it.")
(license license:expat)))
+(define-public python-mpv-jsonipc
+ (package
+ (name "python-mpv-jsonipc")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-mpv-jsonipc" version))
+ (sha256
+ (base32 "0ymdwrx544a6gn6wm9dixpgzbfrbpxvcj5ys7m41cgb4lvpvx691"))))
+ (build-system pyproject-build-system)
+ (home-page "https://github.com/iwalton3/python-mpv-jsonipc")
+ (synopsis "Python API to MPV using JSON IPC")
+ (description "Python API to MPV using JSON IPC")
+ (license license:asl2.0)))
+
(define-public python-parso
(package
(name "python-parso")
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 05:16
[PATCH 02/14] gnu: Add emacs-geoclue.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
eeb6d8bb3730f2f57945f8cc0566332341dc021d.1699740282.git.ian@retrospec.tv
* gnu/packages/emacs-xyz.scm (emacs-geoclue): New variable.
---
gnu/packages/emacs-xyz.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 4648432441..0f2e8f20a6 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -5047,6 +5047,29 @@ (define-public emacs-google-maps
directly inside Emacs. It requires a Google Map Static API key to function.")
(license license:gpl3+))))
+(define-public emacs-geoclue
+ (let ((commit "f409b544be4d2cfd848f4658618374b0bc76cb3c")
+ (version "0.8.1")
+ (revision "1"))
+ (package
+ (name "emacs-geoclue")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://codeberg.org/emacs-weirdware/geoclue.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1ggyn9rvc6si3xy1rrw2f2hyw6cys4bgb9v0ah0qq65y3dnziq6m"))))
+ (build-system emacs-build-system)
+ (home-page "https://codeberg.org/emacs-weirdware/geoclue")
+ (synopsis "Determine your current location using GeoClue2 over D-Bus")
+ (description "An Emacs library which lets you determine your current
+location using GeoClue2 over D-Bus.")
+ (license (list license:gpl3+)))))
+
(define-public emacs-nominatim
(let ((revision "0")
(commit "f814e16f8f4e2cfd633f52b29699a009ab704fbf"))
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 05:16
[PATCH 2/4] gnu: Add python-jellyfin-apiclient.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
d0e6980d8793f5953b3b79ccd21fc26610c68d72.1699762188.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-jellyfin-apiclient): New variable.

Change-Id: I9c2401a951fe6b980c449f7707c7275b5585ae10
---
gnu/packages/python-xyz.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6669a6ab73..9beebc5358 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -24669,6 +24669,24 @@ (define-public python-mpv-jsonipc
(description "Python API to MPV using JSON IPC")
(license license:asl2.0)))
+(define-public python-jellyfin-apiclient
+ (package
+ (name "python-jellyfin-apiclient")
+ (version "1.9.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jellyfin-apiclient-python" version))
+ (sha256
+ (base32 "0r67cp9nizvn3cbslgi30zpd3mw4a6zal0ygik3jv5lni1xdkk5w"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-certifi python-requests python-urllib3
+ python-websocket-client))
+ (home-page "https://github.com/iwalton3/jellyfin-apiclient-python")
+ (synopsis "Python API client for Jellyfin")
+ (description "Python API client for Jellyfin")
+ (license license:gpl3)))
+
(define-public python-parso
(package
(name "python-parso")
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 05:16
[PATCH 03/14] gnu: Add emacs-9lc-mode.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
8b117489ba8fc239d684d45ee7c07a1d4430e7e5.1699740282.git.ian@retrospec.tv
* gnu/packages/emacs-xyz.scm (emacs-9lc-mode): New variable.
---
gnu/packages/emacs-xyz.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 0f2e8f20a6..6980ea4ca6 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -9819,6 +9819,31 @@ (define-public emacs-sbt-mode
navigation to errors.")
(license license:gpl3+)))
+(define-public emacs-9lc-mode
+ (let ((commit "7871476488fc7b66e05714797a9a5b8275988662")
+ (version "0.7")
+ (revision "1"))
+ (package
+ (name "emacs-9lc-mode")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://codeberg.org/emacs-weirdware/9lc-mode.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1kmx0c413yvvaq33v7lf3gzdjpxkr5faa1wj2j0m25lyyz8dsdm7"))))
+ (build-system emacs-build-system)
+ (home-page "https://codeberg.org/emacs-weirdware/geoclue")
+ (synopsis "Major mode for editing Fluke 9000 scripts")
+ (description
+ "This is a major mode for editing Fluke 9010a \"9LC\"
+source code. This is a scripting language used to control Fluke’s 9000 series
+of microsystem troubleshooters.")
+ (license (list license:gpl3+)))))
+
(define-public emacs-scheme-complete
;; Upstream does not provide tags. The commit below corresponds to the
;; exact version update. Version is extracted from main file.
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 05:16
[PATCH 3/4] gnu: Add python-pystray.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
4ade2e0088a76db50b65f387e7feade5eab60173.1699762188.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-pystray): New variable.

Change-Id: Ia6ef6388b76db59640914b80ee756d98f5e3e5eb
---
gnu/packages/python-xyz.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 9beebc5358..8c43be75c3 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -30439,6 +30439,32 @@ (define-public python-qdarkstyle
Qt applications.")
(license license:expat)))
+(define-public python-pystray
+ (package
+ (name "python-pystray")
+ (version "0.19.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/moses-palmer/pystray.git")
+ (commit "1907f8681d6d421517c63d94f425f9cdd74d0034")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1vj6c8s7rbc7xc4bi5brx5629ls1ri9prcw9290v85hagilmp609"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ #:phases #~(modify-phases %standard-phases
+ (delete 'check)
+ (delete 'sanity-check))))
+ (native-inputs (list python-sphinx xorg-server-for-tests))
+ (propagated-inputs (list python-pillow python-six python-xlib))
+ (home-page "https://github.com/moses-palmer/pystray")
+ (synopsis "Create a system tray icon")
+ (description "This library allows you to create a system tray icon.")
+ (license license:lgpl3)))
+
(define-public python-bitstring
(package
(name "python-bitstring")
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 05:16
[PATCH 04/14] gnu: Add emacs-tl1-mode.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
17bc300a069ff0816a43f2f82ead1b0b8c7396b5.1699740282.git.ian@retrospec.tv
* gnu/packages/emacs-xyz.scm (emacs-tl1-mode): New variable.
---
gnu/packages/emacs-xyz.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (38 lines)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 6980ea4ca6..118083c570 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -9844,6 +9844,31 @@ (define-public emacs-9lc-mode
of microsystem troubleshooters.")
(license (list license:gpl3+)))))
+(define-public emacs-tl1-mode
+ (let ((commit "48d12893cc81d7f92dc7b603d3751d8512ed0eb0")
+ (version "1.3")
+ (revision "1"))
+ (package
+ (name "emacs-tl1-mode")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://codeberg.org/emacs-weirdware/tl1-mode.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1mf0wqbn9h0353hkhcykzrm2dk1jvyijqs4hsvgj3kwp1whws7br"))))
+ (build-system emacs-build-system)
+ (home-page "https://codeberg.org/emacs-weirdware/geoclue")
+ (synopsis "Major mode for editing Fluke 9100 TL/1 source code")
+ (description
+ "This is a major mode for editing Fluke TL/1 source
+code. TL/1 is a language used to control Fluke’s 9100 series of testing &
+troubleshooting mainframes.")
+ (license (list license:gpl3+)))))
+
(define-public emacs-scheme-complete
;; Upstream does not provide tags. The commit below corresponds to the
;; exact version update. Version is extracted from main file.
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 05:16
[PATCH 09/14] gnu: Add emacs-exwm-ss.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
a198a28a43cd630ccec53804c51dce816af96b54.1699740282.git.ian@retrospec.tv
* gnu/packages/emacs-xyz.scm (emacs-exwm-ss): New variable.

Change-Id: Ia3d8d0712b08bd93290d6144dbcf69b6b577654a
---
gnu/packages/emacs-xyz.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 0d0c6cd71a..9bf806f470 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -31402,6 +31402,30 @@ (define-public emacs-exwm-firefox
navigation controls.")
(license (list license:gpl3+)))))
+(define-public emacs-exwm-ss
+ (let ((commit "b11d3df7a50c39b4e1b92ef8a6685cf80b53912c")
+ (version "0.1")
+ (revision "1"))
+ (package
+ (name "emacs-exwm-ss")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://codeberg.org/emacs-weirdware/exwm-ss.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "045b0cjycf7nf52ap89w5dz16l1qyh940qxwvdi76v6al78amrap"))))
+
+ (build-system emacs-build-system)
+ (inputs (list emacs-exwm))
+ (home-page "https://codeberg.org/emacs-weirdware/exwm-ss")
+ (synopsis "Automatically inhibit screensaver activation in EXWM")
+ (description "Automatically inhibit screensaver activation in EXWM.")
+ (license (list license:gpl3+)))))
+
(define-public emacs-ert-async
(package
(name "emacs-ert-async")
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 05:16
[PATCH 10/14] gnu: Add emacs-debase.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
b35b0d7dab4fcbe497439068be5afce5b152af30.1699740282.git.ian@retrospec.tv
* gnu/packages/emacs-xyz.scm (emacs-debase): New variable.

Change-Id: Idab93a2e2f0834b041792beb41790c725be1e16d
---
gnu/packages/emacs-xyz.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)

Toggle diff (41 lines)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 9bf806f470..a36852ccdc 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -34903,6 +34903,34 @@ (define-public emacs-helm-linux-disks
(home-page "https://github.com/Akirak/helm-linux-disks")
(license license:gpl3+))))
+(define-public emacs-debase
+ (let ((commit "0b6fc2af3440d68798e3a85d4c889341aae07936")
+ (version "0.7")
+ (revision "1"))
+ (package
+ (name "emacs-debase")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://codeberg.org/emacs-weirdware/debase.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "112vk1svnc6516vhs47sx5jw6bg8lwrc15l99dxj0sc313lxjy3k"))))
+
+ (build-system emacs-build-system)
+ (inputs (list))
+ (home-page "https://codeberg.org/emacs-weirdware/debase")
+ (synopsis "D-Bus convenience layer for Emacs")
+ (description
+ "Debase frees you from writing repetitive, annoying
+boilerplate code to drive D-Bus services by throwing another pile of
+abstraction at the problem, in the form of unreadably dense, macro-heavy,
+profoundly cursed Lisp.")
+ (license (list license:gpl3+)))))
+
(define-public emacs-psession
(let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
(revision "1"))
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 05:16
[PATCH 05/14] gnu: Add emacs-diss.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
57ddf2ac5a01f043da1b80bbd7442db975bec69b.1699740282.git.ian@retrospec.tv
* gnu/packages/emacs-xyz.scm (emacs-diss): New variable.
---
gnu/packages/emacs-xyz.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 118083c570..aa9227f54a 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -17846,6 +17846,30 @@ (define-public emacs-dired-git-info
information inside the Dired buffer.")
(license license:gpl3+))))
+(define-public emacs-diss
+ (let ((commit "8a99a1b34de4575087da49fe1e19bcf33ac49f46")
+ (version "1.0.0")
+ (revision "1"))
+ (package
+ (name "emacs-diss")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://codeberg.org/emacs-weirdware/diss.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "06xvl85dkp3c2cw41f2gy7db2d7fy5pv5w1wr7vd7ccdlg3fq4gc"))))
+
+ (build-system emacs-build-system)
+ (home-page "https://codeberg.org/emacs-weirdware/diss")
+ (synopsis "Dired Image Slideshow")
+ (description "Diss is a full-featured image slideshow for Emacs, based
+on Dired and image-mode.")
+ (license (list license:gpl3+)))))
+
(define-public emacs-dired-toggle-sudo
(let ((commit "13bbe52c54893f5aa3e56228450ffdd0c9e1d169")
(revision "0"))
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 05:16
[PATCH 11/14] gnu: Add emacs-discomfort.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
6d156d8f9a04ee20fc560bc3449a570770454523.1699740282.git.ian@retrospec.tv
* gnu/packages/emacs-xyz.scm (emacs-discomfort): New variable.
---
gnu/packages/emacs-xyz.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index a36852ccdc..eca8a868c4 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -34931,6 +34931,30 @@ (define-public emacs-debase
profoundly cursed Lisp.")
(license (list license:gpl3+)))))
+(define-public emacs-discomfort
+ (let ((commit "873eea833bbae7196b92bb1102494b8bf5dc5df6")
+ (version "0")
+ (revision "1"))
+ (package
+ (name "emacs-discomfort")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://codeberg.org/emacs-weirdware/discomfort.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "01p4bfiasqxfmp9x1bxdc7763bh712d3vlp2014y8pzrwb1jqdaq"))))
+
+ (build-system emacs-build-system)
+ (inputs (list emacs-debase))
+ (home-page "https://codeberg.org/emacs-weirdware/discomfort")
+ (synopsis "UDisks2 UI for Emacs, to mount & unmount disks")
+ (description "UDisks2 UI for Emacs, to mount & unmount disks")
+ (license (list license:gpl3+)))))
+
(define-public emacs-psession
(let ((commit "3e97267c92b164584e06a6c70ee7491714c7c12c")
(revision "1"))
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 05:16
[PATCH 06/14] gnu: Add emacs-exwm-mff.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
14f66c0a8fcdfb491e6efc56a29e1d3451dbe6c7.1699740282.git.ian@retrospec.tv
* gnu/packages/emacs-xyz.scm (emacs-exwm-mff): New variable.
---
gnu/packages/emacs-xyz.scm | 23 +++++++++++++++++++++++
1 file changed, 23 insertions(+)

Toggle diff (36 lines)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index aa9227f54a..faa6fd0e5a 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -31305,6 +31305,29 @@ (define-public emacs-exwm-edit
invoked.")
(license license:gpl3+))))
+(define-public emacs-exwm-mff
+ (let ((commit "89206f2e3189f589c27c56bd2b6203e906ee7100")
+ (version "1.2.1")
+ (revision "1"))
+ (package
+ (name "emacs-exwm-mff")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://codeberg.org/emacs-weirdware/exwm-mff.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ipmapyd4jmpnk34wk9kfbvqnl04x74yg2pmj298wqa61ylw1n9j"))))
+ (build-system emacs-build-system)
+ (home-page "https://codeberg.org/emacs-weirdware/exwm-mff")
+ (synopsis "Mouse follows focus for EXWM")
+ (description "When an Emacs window is focused, warp the mouse pointer to
+it.")
+ (license (list license:gpl3+)))))
+
(define-public emacs-exwm-modeline
(package
(name "emacs-exwm-modeline")
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 05:16
[PATCH 4/4] gnu: Add jellyfin-mpv-shim.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
0fde32714a9364466cf2ea7bfeee7dec6257bc48.1699762188.git.ian@retrospec.tv
* gnu/packages/video.scm (jellyfin-mpv-shim): New variable.

Change-Id: I7c4aa48c96ab09b427d6f80f290f95f671ce41fd
---
gnu/packages/video.scm | 41 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)

Toggle diff (61 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 68581301a2..66468e3dba 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -66,6 +66,7 @@
;;; Copyright © 2023 Ott Joon <oj@vern.cc>
;;; Copyright © 2023 Dominik Delgado Steuter <dds@disroot.org>
;;; Copyright © 2023 Saku Laesvuori <saku@laesvuori.fi>
+;;; Copyright © 2023 Ian Eure <ian@retrospec.tv>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2406,6 +2407,46 @@ (define-public smplayer
the last played position, etc.")
(license license:gpl2+)))
+(define-public jellyfin-mpv-shim
+ (let ((desktop-base "jellyfin_mpv_shim/integration/")
+ (package-id "com.github.iwalton3.jellyfin-mpv-shim"))
+ (package
+ (name "python-jellyfin-mpv-shim")
+ (version "2.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jellyfin-mpv-shim" version))
+ (sha256
+ (base32 "1cy2sfv84k5nw8bqy4aa7v0hdawp7gk5s7wq850xizqk0sz7cipp"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:tests? #f ;Disabled because they seem to boot the UI
+ #:phases #~(modify-phases %standard-phases
+ (delete 'sanity-check) ;This also seems to boot the UI
+ (add-after 'install 'install-desktop-file
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (apps (string-append out "/share/applications")))
+ (install-file
+ (string-append desktop-base package-id ".appdata.xml")
+ apps)
+ (install-file
+ (string-append desktop-base package-id ".desktop")
+ apps) #t))))))
+ (native-inputs (list xorg-server-for-tests))
+ (propagated-inputs (list `(,python "tk")
+ python-jellyfin-apiclient
+ python-mpv
+ python-mpv-jsonipc
+ python-pystray
+ python-requests))
+ (home-page "https://github.com/jellyfin/jellyfin-mpv-shim")
+ (synopsis "Cast media from Jellyfin Mobile and Web apps to MPV")
+ (description "Cast media from Jellyfin Mobile and Web apps to MPV.")
+ (license license:gpl2))))
+
(define-public gallery-dl
(package
(name "gallery-dl")
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 05:16
[PATCH 12/14] gnu: Add emacs-shell-here.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
c72fcd5528d20867adc88694823438388bbcd5b1.1699740282.git.ian@retrospec.tv
* gnu/packages/emacs-xyz.scm (emacs-shell-here): New variable.
---
gnu/packages/emacs-xyz.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index eca8a868c4..c80ed1b28a 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -36484,6 +36484,33 @@ (define-public emacs-shell-pop
you use some other configuration.")
(license license:gpl3+))))
+(define-public emacs-shell-here
+ (let ((commit "eeb437ff26d62a5009046b1b3b4503b768e3131a")
+ (version "1.3")
+ (revision "1"))
+ (package
+ (name "emacs-shell-here")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://codeberg.org/emacs-weirdware/shell-here.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0x8lnybxj7k6wj941lgqmm57f3qqnmb0gc7573l1fxwfhf39fl20"))))
+
+ (build-system emacs-build-system)
+ (home-page "https://codeberg.org/emacs-weirdware/shell-here")
+ (synopsis "Launch a shell relative to default-directory")
+ (description
+ "Open a shell buffer in (or relative to) default-directory,
+e.g. whatever directory the current buffer is in. If you have projectile or
+find-file-in-project installed, you can also move around relative to the root
+of the current project.")
+ (license (list license:gpl3+)))))
+
(define-public emacs-tshell
;; XXX: Upstream has no tagged release. Version is extracted from keyword
;; in main file.
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 05:16
[PATCH 07/14] gnu: Add emacs-exwm-firefox-core.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
09b2a6e54f21bb48143a6d0d8088d657d797c6bb.1699740282.git.ian@retrospec.tv
* gnu/packages/emacs-xyz.scm (emacs-exwm-firefox-core): New variable.
---
gnu/packages/emacs-xyz.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index faa6fd0e5a..e565dc1d7c 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -31349,6 +31349,32 @@ (define-public emacs-exwm-modeline
workspaces.")
(license license:gpl3+)))
+(define-public emacs-exwm-firefox-core
+ (let ((commit "e2fe2a895e8f973307ef52f8c9976b26e701cbd0")
+ (version "1.0")
+ (revision "1"))
+ (package
+ (name "emacs-exwm-firefox-core")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/walseb/exwm-firefox-core.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0k5jkjzx6f8nfmbkc61raj585p9pymycgzv7rr3fhv2drgkaa4yi"))))
+
+ (inputs (list emacs-exwm))
+ (build-system emacs-build-system)
+ (home-page "https://github.com/walseb/exwm-firefox-core")
+ (synopsis "Control Firefox with EXWM")
+ (description
+ "This package contains functions that execute exwm
+keypresses mapped in firefox to the action described in the function name.")
+ (license (list license:gpl3+)))))
+
(define-public emacs-ert-async
(package
(name "emacs-ert-async")
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 05:16
[PATCH 13/14] gnu: Add emacs-hyperspace.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
2dc5c892200d5a1b9355d2ded57e055d7ed0ce58.1699740282.git.ian@retrospec.tv
* gnu/packages/emacs-xyz.scm (emacs-hyperspace): New variable.
---
gnu/packages/emacs-xyz.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (42 lines)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index c80ed1b28a..0152f7c432 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -36511,6 +36511,35 @@ (define-public emacs-shell-here
of the current project.")
(license (list license:gpl3+)))))
+(define-public emacs-hyperspace
+ (let ((commit "f574d07fd8715e806ba4f0487b73c699963baed3")
+ (version "0.8.5")
+ (revision "1"))
+ (package
+ (name "emacs-hyperspace")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://codeberg.org/emacs-weirdware/hyperspace.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "19h3d12a99i7a92k3iw4zmjmw3dazsgnkc6j4965h033r1s40amx"))))
+
+ (build-system emacs-build-system)
+ (inputs (list emacs-s))
+ (home-page "https://codeberg.org/emacs-weirdware/hyperspace")
+ (synopsis "Get there from here")
+ (description
+ "Hyperspace is a way to get nearly anywhere from wherever
+you are, whether that's within Emacs or on the web. It's somewhere in between
+Quicksilver and keyword URLs, giving you a single, consistent interface to get
+directly where you want to go. It’s for things that you use often, but not
+often enough to justify a dedicated binding.")
+ (license (list license:gpl3+)))))
+
(define-public emacs-tshell
;; XXX: Upstream has no tagged release. Version is extracted from keyword
;; in main file.
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 05:16
[PATCH 08/14] gnu: Add emacs-exwm-firefox.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
27f03f1590803f956d268f9bd5f9f8ca7a19de26.1699740282.git.ian@retrospec.tv
* gnu/packages/emacs-xyz.scm (emacs-exwm-firefox): New variable.
---
gnu/packages/emacs-xyz.scm | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)

Toggle diff (40 lines)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index e565dc1d7c..0d0c6cd71a 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -31375,6 +31375,33 @@ (define-public emacs-exwm-firefox-core
keypresses mapped in firefox to the action described in the function name.")
(license (list license:gpl3+)))))
+(define-public emacs-exwm-firefox
+ (let ((commit "7390c3bc425894aeda3c12c23f61a234bb71a2d9")
+ (version "0.4")
+ (revision "1"))
+ (package
+ (name "emacs-exwm-firefox")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://codeberg.org/emacs-weirdware/exwm-firefox.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0xmgij04h4cbcgqafyyf9qajf0wp6mxpfpwjm6gi1jgisrql882d"))))
+
+ (build-system emacs-build-system)
+ (inputs (list emacs-exwm-firefox-core emacs-s emacs-exwm))
+ (home-page "https://codeberg.org/emacs-weirdware/exwm-firefox")
+ (synopsis "Enhanced support for Firefox under EXWM")
+ (description
+ "This package adds enhanced support for Firefox (and forks
+based on Firefox) under EXWM. Keybindings intentionally mirror other Emacs
+navigation controls.")
+ (license (list license:gpl3+)))))
+
(define-public emacs-ert-async
(package
(name "emacs-ert-async")
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 05:16
[PATCH 14/14] gnu: Add emacs-nssh.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
d39a61e1b68120d5749b64ca77cf026e69b62bd4.1699740282.git.ian@retrospec.tv
* gnu/packages/emacs-xyz.scm (emacs-nssh): New variable.
---
gnu/packages/emacs-xyz.scm | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/emacs-xyz.scm b/gnu/packages/emacs-xyz.scm
index 0152f7c432..227c2bc8dc 100644
--- a/gnu/packages/emacs-xyz.scm
+++ b/gnu/packages/emacs-xyz.scm
@@ -36540,6 +36540,30 @@ (define-public emacs-hyperspace
often enough to justify a dedicated binding.")
(license (list license:gpl3+)))))
+(define-public emacs-nssh
+ (let ((commit "74d43738565749af680e4d1388e0c2f88e93498d")
+ (version "0.9.12")
+ (revision "1"))
+ (package
+ (name "emacs-nssh")
+ (version (git-version version revision commit))
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://codeberg.org/emacs-weirdware/nssh.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0i2nnrg7xv7b2bbby6idszs9byk2jd83q7vqj6lxgn80w94i56nn"))))
+
+ (build-system emacs-build-system)
+ (home-page "https://codeberg.org/emacs-weirdware/nssh")
+ (synopsis "New SSH mode")
+ (description "A new SSH mode for Emacs. It takes some inspiration and
+code from ssh-mode.")
+ (license (list license:gpl3+)))))
+
(define-public emacs-tshell
;; XXX: Upstream has no tagged release. Version is extracted from keyword
;; in main file.
--
2.41.0
L
L
Liliana Marie Prikler wrote on 12 Nov 2023 08:28
Re: [bug#67120] [PATCH 01/14] gnu: Add emacs-dnt.
2627887b74c7cc699dc6918d7de21cfd04cc26dd.camel@gmail.com
Am Samstag, dem 11.11.2023 um 20:16 -0800 schrieb Ian Eure:
Toggle quote (2 lines)
> * gnu/packages/emacs-xyz.scm (emacs-dnt): New variable.
> ---
Hi, you've sent this to the wrong bug number. Please resend the actual
67120 as v2 so we can ignore this blunder :)
I
I
Ian Eure wrote on 12 Nov 2023 18:21
(name . Liliana Marie Prikler)(address . liliana.prikler@gmail.com)
875y267upz.fsf@retrospec.tv
Yep, I sure did. :/

Fixed patches incoming.

Liliana Marie Prikler <liliana.prikler@gmail.com> writes:

Toggle quote (7 lines)
> Am Samstag, dem 11.11.2023 um 20:16 -0800 schrieb Ian Eure:
>> * gnu/packages/emacs-xyz.scm (emacs-dnt): New variable.
>> ---
> Hi, you've sent this to the wrong bug number. Please resend the
> actual
> 67120 as v2 so we can ignore this blunder :)
>
I
I
Ian Eure wrote on 12 Nov 2023 18:23
[PATCH v2 1/4] gnu: Add python-mpv-jsonipc.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
cbf2f8556665f85c9a1b82e91a29af169a341e9d.1699809635.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-mpv-jsonipc): New variable.

Change-Id: I7aa01f25d873faa2a7dd8aa6ea54a1a3ae91006f
---
gnu/packages/python-xyz.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index e521c1580d..6669a6ab73 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -145,6 +145,7 @@
;;; Copyright © c4droid <c4droid@foxmail.com>
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name>
+;;; Copyright © 2023 Ian Eure <ian@retrospec.tv>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24652,6 +24653,22 @@ (define-public online-judge-tools
submitting it.")
(license license:expat)))
+(define-public python-mpv-jsonipc
+ (package
+ (name "python-mpv-jsonipc")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-mpv-jsonipc" version))
+ (sha256
+ (base32 "0ymdwrx544a6gn6wm9dixpgzbfrbpxvcj5ys7m41cgb4lvpvx691"))))
+ (build-system pyproject-build-system)
+ (home-page "https://github.com/iwalton3/python-mpv-jsonipc")
+ (synopsis "Python API to MPV using JSON IPC")
+ (description "Python API to MPV using JSON IPC")
+ (license license:asl2.0)))
+
(define-public python-parso
(package
(name "python-parso")

base-commit: af6105afc67a15a491a0a4fd18a28c9f801a0b94
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 18:23
[PATCH v2 3/4] gnu: Add python-pystray.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
4ade2e0088a76db50b65f387e7feade5eab60173.1699809635.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-pystray): New variable.

Change-Id: Ia6ef6388b76db59640914b80ee756d98f5e3e5eb
---
gnu/packages/python-xyz.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 9beebc5358..8c43be75c3 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -30439,6 +30439,32 @@ (define-public python-qdarkstyle
Qt applications.")
(license license:expat)))
+(define-public python-pystray
+ (package
+ (name "python-pystray")
+ (version "0.19.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/moses-palmer/pystray.git")
+ (commit "1907f8681d6d421517c63d94f425f9cdd74d0034")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1vj6c8s7rbc7xc4bi5brx5629ls1ri9prcw9290v85hagilmp609"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ #:phases #~(modify-phases %standard-phases
+ (delete 'check)
+ (delete 'sanity-check))))
+ (native-inputs (list python-sphinx xorg-server-for-tests))
+ (propagated-inputs (list python-pillow python-six python-xlib))
+ (home-page "https://github.com/moses-palmer/pystray")
+ (synopsis "Create a system tray icon")
+ (description "This library allows you to create a system tray icon.")
+ (license license:lgpl3)))
+
(define-public python-bitstring
(package
(name "python-bitstring")
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 18:23
[PATCH v2 2/4] gnu: Add python-jellyfin-apiclient.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
d0e6980d8793f5953b3b79ccd21fc26610c68d72.1699809635.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-jellyfin-apiclient): New variable.

Change-Id: I9c2401a951fe6b980c449f7707c7275b5585ae10
---
gnu/packages/python-xyz.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 6669a6ab73..9beebc5358 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -24669,6 +24669,24 @@ (define-public python-mpv-jsonipc
(description "Python API to MPV using JSON IPC")
(license license:asl2.0)))
+(define-public python-jellyfin-apiclient
+ (package
+ (name "python-jellyfin-apiclient")
+ (version "1.9.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jellyfin-apiclient-python" version))
+ (sha256
+ (base32 "0r67cp9nizvn3cbslgi30zpd3mw4a6zal0ygik3jv5lni1xdkk5w"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-certifi python-requests python-urllib3
+ python-websocket-client))
+ (home-page "https://github.com/iwalton3/jellyfin-apiclient-python")
+ (synopsis "Python API client for Jellyfin")
+ (description "Python API client for Jellyfin")
+ (license license:gpl3)))
+
(define-public python-parso
(package
(name "python-parso")
--
2.41.0
I
I
Ian Eure wrote on 12 Nov 2023 18:23
[PATCH v2 4/4] gnu: Add jellyfin-mpv-shim.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
0fde32714a9364466cf2ea7bfeee7dec6257bc48.1699809635.git.ian@retrospec.tv
* gnu/packages/video.scm (jellyfin-mpv-shim): New variable.

Change-Id: I7c4aa48c96ab09b427d6f80f290f95f671ce41fd
---
gnu/packages/video.scm | 41 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)

Toggle diff (61 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 68581301a2..66468e3dba 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -66,6 +66,7 @@
;;; Copyright © 2023 Ott Joon <oj@vern.cc>
;;; Copyright © 2023 Dominik Delgado Steuter <dds@disroot.org>
;;; Copyright © 2023 Saku Laesvuori <saku@laesvuori.fi>
+;;; Copyright © 2023 Ian Eure <ian@retrospec.tv>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2406,6 +2407,46 @@ (define-public smplayer
the last played position, etc.")
(license license:gpl2+)))
+(define-public jellyfin-mpv-shim
+ (let ((desktop-base "jellyfin_mpv_shim/integration/")
+ (package-id "com.github.iwalton3.jellyfin-mpv-shim"))
+ (package
+ (name "python-jellyfin-mpv-shim")
+ (version "2.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jellyfin-mpv-shim" version))
+ (sha256
+ (base32 "1cy2sfv84k5nw8bqy4aa7v0hdawp7gk5s7wq850xizqk0sz7cipp"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:tests? #f ;Disabled because they seem to boot the UI
+ #:phases #~(modify-phases %standard-phases
+ (delete 'sanity-check) ;This also seems to boot the UI
+ (add-after 'install 'install-desktop-file
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (apps (string-append out "/share/applications")))
+ (install-file
+ (string-append desktop-base package-id ".appdata.xml")
+ apps)
+ (install-file
+ (string-append desktop-base package-id ".desktop")
+ apps) #t))))))
+ (native-inputs (list xorg-server-for-tests))
+ (propagated-inputs (list `(,python "tk")
+ python-jellyfin-apiclient
+ python-mpv
+ python-mpv-jsonipc
+ python-pystray
+ python-requests))
+ (home-page "https://github.com/jellyfin/jellyfin-mpv-shim")
+ (synopsis "Cast media from Jellyfin Mobile and Web apps to MPV")
+ (description "Cast media from Jellyfin Mobile and Web apps to MPV.")
+ (license license:gpl2))))
+
(define-public gallery-dl
(package
(name "gallery-dl")
--
2.41.0
I
I
Ian Eure wrote on 30 Nov 2023 02:54
[PATCH v2 0/4] Add jellyfin-mpv-shim and deps
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
cover.1701308909.git.ian@retrospec.tv
Changes made:

- Rebased and addressed conflicts.
- Fixed a build failure.
- Renamed from python-jellyfin-mpv-shim to jellyfin-mpv-shim. I think the python- prefix is only needed for stuff like libraries, an end-uesr application like this shouldn't need the name of the programming language it's written in to be in the package name.

retitle 67120 [PATCH 0/4] Add jellyfin-mpv-shim and deps

Ian Eure (4):
gnu: Add python-mpv-jsonipc.
gnu: Add python-jellyfin-apiclient.
gnu: Add python-pystray.
gnu: Add jellyfin-mpv-shim.

gnu/packages/python-xyz.scm | 61 +++++++++++++++++++++++++++++++++++++
gnu/packages/video.scm | 41 +++++++++++++++++++++++++
2 files changed, 102 insertions(+)


base-commit: bdbb9dc27a590b08651d058f06a42caa26e04abb
--
2.41.0
I
I
Ian Eure wrote on 30 Nov 2023 02:54
[PATCH v2 1/4] gnu: Add python-mpv-jsonipc.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
3d591b2c6fa0240860ed08bcd93df784c78a1d0d.1701308909.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-mpv-jsonipc): New variable.

Change-Id: I7aa01f25d873faa2a7dd8aa6ea54a1a3ae91006f
---
gnu/packages/python-xyz.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (37 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 746ecccc5a..e1e27ea76b 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -146,6 +146,7 @@
;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name>
;;; Copyright © 2023 Troy Figiel <troy@troyfigiel.com>
+;;; Copyright © 2023 Ian Eure <ian@retrospec.tv>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -24687,6 +24688,22 @@ (define-public online-judge-tools
submitting it.")
(license license:expat)))
+(define-public python-mpv-jsonipc
+ (package
+ (name "python-mpv-jsonipc")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-mpv-jsonipc" version))
+ (sha256
+ (base32 "0ymdwrx544a6gn6wm9dixpgzbfrbpxvcj5ys7m41cgb4lvpvx691"))))
+ (build-system pyproject-build-system)
+ (home-page "https://github.com/iwalton3/python-mpv-jsonipc")
+ (synopsis "Python API to MPV using JSON IPC")
+ (description "Python API to MPV using JSON IPC")
+ (license license:asl2.0)))
+
(define-public python-parso
(package
(name "python-parso")
--
2.41.0
I
I
Ian Eure wrote on 30 Nov 2023 02:54
[PATCH v2 2/4] gnu: Add python-jellyfin-apiclient.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
78bdabdd871f4b84114833ee4e4e9cbc5bb3d46d.1701308909.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-jellyfin-apiclient): New variable.

Change-Id: I9c2401a951fe6b980c449f7707c7275b5585ae10
---
gnu/packages/python-xyz.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index e1e27ea76b..a3fea89e25 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -24704,6 +24704,24 @@ (define-public python-mpv-jsonipc
(description "Python API to MPV using JSON IPC")
(license license:asl2.0)))
+(define-public python-jellyfin-apiclient
+ (package
+ (name "python-jellyfin-apiclient")
+ (version "1.9.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jellyfin-apiclient-python" version))
+ (sha256
+ (base32 "0r67cp9nizvn3cbslgi30zpd3mw4a6zal0ygik3jv5lni1xdkk5w"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-certifi python-requests python-urllib3
+ python-websocket-client))
+ (home-page "https://github.com/iwalton3/jellyfin-apiclient-python")
+ (synopsis "Python API client for Jellyfin")
+ (description "Python API client for Jellyfin")
+ (license license:gpl3)))
+
(define-public python-parso
(package
(name "python-parso")
--
2.41.0
I
I
Ian Eure wrote on 30 Nov 2023 02:54
[PATCH v2 3/4] gnu: Add python-pystray.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
5c192773fc6d22c1f9d557006fcd2b212e791f91.1701308909.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-pystray): New variable.

Change-Id: Ia6ef6388b76db59640914b80ee756d98f5e3e5eb
---
gnu/packages/python-xyz.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index a3fea89e25..a16079c434 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -30474,6 +30474,32 @@ (define-public python-qdarkstyle
Qt applications.")
(license license:expat)))
+(define-public python-pystray
+ (package
+ (name "python-pystray")
+ (version "0.19.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/moses-palmer/pystray.git")
+ (commit "1907f8681d6d421517c63d94f425f9cdd74d0034")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1vj6c8s7rbc7xc4bi5brx5629ls1ri9prcw9290v85hagilmp609"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ #:phases #~(modify-phases %standard-phases
+ (delete 'check)
+ (delete 'sanity-check))))
+ (native-inputs (list python-sphinx xorg-server-for-tests))
+ (propagated-inputs (list python-pillow python-six python-xlib))
+ (home-page "https://github.com/moses-palmer/pystray")
+ (synopsis "Create a system tray icon")
+ (description "This library allows you to create a system tray icon.")
+ (license license:lgpl3)))
+
(define-public python-bitstring
(package
(name "python-bitstring")
--
2.41.0
I
I
Ian Eure wrote on 30 Nov 2023 02:54
[PATCH v2 4/4] gnu: Add jellyfin-mpv-shim.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
d7f36d5698cba0cd71b5eec02bb09d2d5c791629.1701308909.git.ian@retrospec.tv
* gnu/packages/video.scm (jellyfin-mpv-shim): New variable.

Change-Id: I7c4aa48c96ab09b427d6f80f290f95f671ce41fd
---
gnu/packages/video.scm | 41 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 41 insertions(+)

Toggle diff (61 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 2822cdf4bf..24a2b52af7 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -67,6 +67,7 @@
;;; Copyright © 2023 Dominik Delgado Steuter <dds@disroot.org>
;;; Copyright © 2023 Saku Laesvuori <saku@laesvuori.fi>
;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
+;;; Copyright © 2023 Ian Eure <ian@retrospec.tv>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2481,6 +2482,46 @@ (define-public smplayer
the last played position, etc.")
(license license:gpl2+)))
+(define-public jellyfin-mpv-shim
+ (let ((desktop-base "jellyfin_mpv_shim/integration/")
+ (package-id "com.github.iwalton3.jellyfin-mpv-shim"))
+ (package
+ (name "jellyfin-mpv-shim")
+ (version "2.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jellyfin-mpv-shim" version))
+ (sha256
+ (base32 "1cy2sfv84k5nw8bqy4aa7v0hdawp7gk5s7wq850xizqk0sz7cipp"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:tests? #f ;Disabled because they seem to boot the UI
+ #:phases #~(modify-phases %standard-phases
+ (delete 'sanity-check) ;This also seems to boot the UI
+ (add-after 'install 'install-desktop-file
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (apps (string-append out "/share/applications")))
+ (install-file
+ (string-append #$desktop-base #$package-id ".appdata.xml")
+ apps)
+ (install-file
+ (string-append #$desktop-base #$package-id ".desktop")
+ apps) #t))))))
+ (native-inputs (list xorg-server-for-tests))
+ (propagated-inputs (list `(,python "tk")
+ python-jellyfin-apiclient
+ python-mpv
+ python-mpv-jsonipc
+ python-pystray
+ python-requests))
+ (home-page "https://github.com/jellyfin/jellyfin-mpv-shim")
+ (synopsis "Cast media from Jellyfin Mobile and Web apps to MPV")
+ (description "Cast media from Jellyfin Mobile and Web apps to MPV.")
+ (license license:gpl2))))
+
(define-public gallery-dl
(package
(name "gallery-dl")
--
2.41.0
I
I
Ian Eure wrote on 17 Feb 18:20 +0100
[PATCH v3 0/4] Add jellyfin-mpv-shim and deps
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
cover.1708190337.git.ian@retrospec.tv
Rebased on current master, since the last patch series no longer applies.

Also, pinging on this; I haven't heard anything since submitting it last November.

Ian Eure (4):
gnu: Add python-mpv-jsonipc.
gnu: Add python-jellyfin-apiclient.
gnu: Add python-pystray.
gnu: Add jellyfin-mpv-shim.

gnu/packages/python-xyz.scm | 60 +++++++++++++++++++++++++++++++++++++
gnu/packages/video.scm | 40 +++++++++++++++++++++++++
2 files changed, 100 insertions(+)


base-commit: 3cf199dbcf85a44fa8370e786e568fc3feb7067c
--
2.41.0
I
I
Ian Eure wrote on 17 Feb 18:20 +0100
[PATCH v3 1/4] gnu: Add python-mpv-jsonipc.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
56949ff18e802e94168f2619672691c3d0e90740.1708190337.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-mpv-jsonipc): New variable.

Change-Id: Iec7679213d9b9e8e5cbf01a30838e27e71704e54
---
gnu/packages/python-xyz.scm | 16 ++++++++++++++++
1 file changed, 16 insertions(+)

Toggle diff (29 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 2dd8a12af5..ed80ee1d5e 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -25808,6 +25808,22 @@ (define-public online-judge-tools
submitting it.")
(license license:expat)))
+(define-public python-mpv-jsonipc
+ (package
+ (name "python-mpv-jsonipc")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-mpv-jsonipc" version))
+ (sha256
+ (base32 "0ymdwrx544a6gn6wm9dixpgzbfrbpxvcj5ys7m41cgb4lvpvx691"))))
+ (build-system pyproject-build-system)
+ (home-page "https://github.com/iwalton3/python-mpv-jsonipc")
+ (synopsis "Python API to MPV using JSON IPC")
+ (description "Python API to MPV using JSON IPC")
+ (license license:asl2.0)))
+
(define-public python-parso
(package
(name "python-parso")
--
2.41.0
I
I
Ian Eure wrote on 17 Feb 18:20 +0100
[PATCH v3 2/4] gnu: Add python-jellyfin-apiclient.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
f1717eefa65f8fa2004b613ba38aefdea4aa0adf.1708190337.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-jellyfin-apiclient): New variable.

Change-Id: If84546b14d380a3a10af63d4f41711125298487a
---
gnu/packages/python-xyz.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ed80ee1d5e..ba01a008bf 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -25824,6 +25824,24 @@ (define-public python-mpv-jsonipc
(description "Python API to MPV using JSON IPC")
(license license:asl2.0)))
+(define-public python-jellyfin-apiclient
+ (package
+ (name "python-jellyfin-apiclient")
+ (version "1.9.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jellyfin-apiclient-python" version))
+ (sha256
+ (base32 "0r67cp9nizvn3cbslgi30zpd3mw4a6zal0ygik3jv5lni1xdkk5w"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-certifi python-requests python-urllib3
+ python-websocket-client))
+ (home-page "https://github.com/jellyfin/jellyfin-apiclient-python")
+ (synopsis "Python API client for Jellyfin")
+ (description "Python API client for Jellyfin")
+ (license license:gpl3)))
+
(define-public python-parso
(package
(name "python-parso")
--
2.41.0
I
I
Ian Eure wrote on 17 Feb 18:20 +0100
[PATCH v3 3/4] gnu: Add python-pystray.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
3471315968e7106e0bac45533ac8b324785745b2.1708190337.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-pystray): New variable.

Change-Id: If10777c9ec91b549b9937b4825565223786a75cb
---
gnu/packages/python-xyz.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ba01a008bf..05c29049b8 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -31694,6 +31694,32 @@ (define-public python-qdarkstyle
Qt applications.")
(license license:expat)))
+(define-public python-pystray
+ (package
+ (name "python-pystray")
+ (version "0.19.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/moses-palmer/pystray")
+ (commit "1907f8681d6d421517c63d94f425f9cdd74d0034")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1vj6c8s7rbc7xc4bi5brx5629ls1ri9prcw9290v85hagilmp609"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ #:phases #~(modify-phases %standard-phases
+ (delete 'check)
+ (delete 'sanity-check))))
+ (native-inputs (list python-sphinx xorg-server-for-tests))
+ (propagated-inputs (list python-pillow python-six python-xlib))
+ (home-page "https://github.com/moses-palmer/pystray")
+ (synopsis "Create a system tray icon")
+ (description "This library allows you to create a system tray icon.")
+ (license license:lgpl3)))
+
(define-public python-bitstring
(package
(name "python-bitstring")
--
2.41.0
I
I
Ian Eure wrote on 17 Feb 18:20 +0100
[PATCH v3 4/4] gnu: Add jellyfin-mpv-shim.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
db6cdc6039806c6c6d907bfdf83eaae748f331ad.1708190337.git.ian@retrospec.tv
* gnu/packages/video.scm (jellyfin-mpv-shim): New variable.

Change-Id: Ie030dee36b1c2afc796f082fdebf909cbddd59da
---
gnu/packages/video.scm | 40 ++++++++++++++++++++++++++++++++++++++++
1 file changed, 40 insertions(+)

Toggle diff (53 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 894543d3cc..c752198d1e 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -2751,6 +2751,46 @@ (define-public smplayer
the last played position, etc.")
(license license:gpl2+)))
+(define-public jellyfin-mpv-shim
+ (let ((desktop-base "jellyfin_mpv_shim/integration/")
+ (package-id "com.github.iwalton3.jellyfin-mpv-shim"))
+ (package
+ (name "jellyfin-mpv-shim")
+ (version "2.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jellyfin-mpv-shim" version))
+ (sha256
+ (base32 "1cy2sfv84k5nw8bqy4aa7v0hdawp7gk5s7wq850xizqk0sz7cipp"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:tests? #f ;Disabled because they seem to boot the UI
+ #:phases #~(modify-phases %standard-phases
+ (delete 'sanity-check) ;This also seems to boot the UI
+ (add-after 'install 'install-desktop-file
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (apps (string-append out "/share/applications")))
+ (install-file (string-append desktop-base
+ package-id
+ ".appdata.xml") apps)
+ (install-file (string-append desktop-base
+ package-id ".desktop")
+ apps) #t))))))
+ (native-inputs (list xorg-server-for-tests))
+ (propagated-inputs (list `(,python "tk")
+ python-jellyfin-apiclient
+ python-mpv
+ python-mpv-jsonipc
+ python-pystray
+ python-requests))
+ (home-page "https://github.com/jellyfin/jellyfin-mpv-shim")
+ (synopsis "Cast media from Jellyfin Mobile and Web apps to MPV")
+ (description "Cast media from Jellyfin Mobile and Web apps to MPV.")
+ (license license:gpl2))))
+
(define-public gallery-dl
(package
(name "gallery-dl")
--
2.41.0
I
I
Ian Eure wrote on 17 Feb 18:49 +0100
[PATCH v4 0/4] Add jellyfin-mpv-player and deps
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
cover.1708192122.git.ian@retrospec.tv
Last patch series was broken, this corrects the build and solves some minor issues.

Ian Eure (4):
gnu: Add python-mpv-jsonipc.
gnu: Add python-jellyfin-apiclient.
gnu: Add python-pystray.
gnu: Add jellyfin-mpv-shim.

gnu/packages/python-xyz.scm | 60 +++++++++++++++++++++++++++++++++++++
gnu/packages/video.scm | 44 +++++++++++++++++++++++++++
2 files changed, 104 insertions(+)


base-commit: 3cf199dbcf85a44fa8370e786e568fc3feb7067c
--
2.41.0
I
I
Ian Eure wrote on 17 Feb 18:49 +0100
[PATCH v4 1/4] gnu: Add python-mpv-jsonipc.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
56949ff18e802e94168f2619672691c3d0e90740.1708192122.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-mpv-jsonipc): New variable.

Change-Id: Iec7679213d9b9e8e5cbf01a30838e27e71704e54
---
gnu/packages/python-xyz.scm | 16 ++++++++++++++++
1 file changed, 16 insertions(+)

Toggle diff (29 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 2dd8a12af5..ed80ee1d5e 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -25808,6 +25808,22 @@ (define-public online-judge-tools
submitting it.")
(license license:expat)))
+(define-public python-mpv-jsonipc
+ (package
+ (name "python-mpv-jsonipc")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-mpv-jsonipc" version))
+ (sha256
+ (base32 "0ymdwrx544a6gn6wm9dixpgzbfrbpxvcj5ys7m41cgb4lvpvx691"))))
+ (build-system pyproject-build-system)
+ (home-page "https://github.com/iwalton3/python-mpv-jsonipc")
+ (synopsis "Python API to MPV using JSON IPC")
+ (description "Python API to MPV using JSON IPC")
+ (license license:asl2.0)))
+
(define-public python-parso
(package
(name "python-parso")
--
2.41.0
I
I
Ian Eure wrote on 17 Feb 18:49 +0100
[PATCH v4 2/4] gnu: Add python-jellyfin-apiclient.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
f1717eefa65f8fa2004b613ba38aefdea4aa0adf.1708192122.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-jellyfin-apiclient): New variable.

Change-Id: If84546b14d380a3a10af63d4f41711125298487a
---
gnu/packages/python-xyz.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ed80ee1d5e..ba01a008bf 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -25824,6 +25824,24 @@ (define-public python-mpv-jsonipc
(description "Python API to MPV using JSON IPC")
(license license:asl2.0)))
+(define-public python-jellyfin-apiclient
+ (package
+ (name "python-jellyfin-apiclient")
+ (version "1.9.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jellyfin-apiclient-python" version))
+ (sha256
+ (base32 "0r67cp9nizvn3cbslgi30zpd3mw4a6zal0ygik3jv5lni1xdkk5w"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-certifi python-requests python-urllib3
+ python-websocket-client))
+ (home-page "https://github.com/jellyfin/jellyfin-apiclient-python")
+ (synopsis "Python API client for Jellyfin")
+ (description "Python API client for Jellyfin")
+ (license license:gpl3)))
+
(define-public python-parso
(package
(name "python-parso")
--
2.41.0
I
I
Ian Eure wrote on 17 Feb 18:49 +0100
[PATCH v4 3/4] gnu: Add python-pystray.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
3471315968e7106e0bac45533ac8b324785745b2.1708192122.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-pystray): New variable.

Change-Id: If10777c9ec91b549b9937b4825565223786a75cb
---
gnu/packages/python-xyz.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ba01a008bf..05c29049b8 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -31694,6 +31694,32 @@ (define-public python-qdarkstyle
Qt applications.")
(license license:expat)))
+(define-public python-pystray
+ (package
+ (name "python-pystray")
+ (version "0.19.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/moses-palmer/pystray")
+ (commit "1907f8681d6d421517c63d94f425f9cdd74d0034")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1vj6c8s7rbc7xc4bi5brx5629ls1ri9prcw9290v85hagilmp609"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ #:phases #~(modify-phases %standard-phases
+ (delete 'check)
+ (delete 'sanity-check))))
+ (native-inputs (list python-sphinx xorg-server-for-tests))
+ (propagated-inputs (list python-pillow python-six python-xlib))
+ (home-page "https://github.com/moses-palmer/pystray")
+ (synopsis "Create a system tray icon")
+ (description "This library allows you to create a system tray icon.")
+ (license license:lgpl3)))
+
(define-public python-bitstring
(package
(name "python-bitstring")
--
2.41.0
I
I
Ian Eure wrote on 17 Feb 18:49 +0100
[PATCH v4 4/4] gnu: Add jellyfin-mpv-shim.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
e74d426d6d03c8784e2f20f473aa501d105efdbe.1708192122.git.ian@retrospec.tv
* gnu/packages/video.scm (jellyfin-mpv-shim): New variable.

Change-Id: Ie030dee36b1c2afc796f082fdebf909cbddd59da
---
gnu/packages/video.scm | 44 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)

Toggle diff (57 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 894543d3cc..442500e24d 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -2751,6 +2751,50 @@ (define-public smplayer
the last played position, etc.")
(license license:gpl2+)))
+(define-public jellyfin-mpv-shim
+ (package
+ (name "jellyfin-mpv-shim")
+ (version "2.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jellyfin-mpv-shim" version))
+ (sha256
+ (base32 "1cy2sfv84k5nw8bqy4aa7v0hdawp7gk5s7wq850xizqk0sz7cipp"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ #:tests? #f ;There are no tests, but this tries to run the GUI.
+ #:phases #~(modify-phases %standard-phases
+ (delete 'sanity-check) ;This tries to run the GUI.
+ (add-after 'install 'install-desktop-file
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (apps (string-append out "/share/applications"))
+ (desktop-base "jellyfin_mpv_shim/integration/")
+ (package-id
+ "com.github.iwalton3.jellyfin-mpv-shim"))
+ (for-each (lambda (size)
+ (install-file (format #f
+ "~ajellyfin-~a.png"
+ desktop-base size) apps))
+ '(256 128 64 48 32 16))
+ (install-file (string-append desktop-base package-id
+ ".appdata.xml") apps)
+ (install-file (string-append desktop-base package-id
+ ".desktop") apps) #t))))))
+ (native-inputs (list xorg-server-for-tests))
+ (propagated-inputs (list `(,python "tk")
+ python-jellyfin-apiclient
+ python-mpv
+ python-mpv-jsonipc
+ python-pystray
+ python-requests))
+ (home-page "https://github.com/jellyfin/jellyfin-mpv-shim")
+ (synopsis "Cast media from Jellyfin Mobile and Web apps to MPV")
+ (description "Cast media from Jellyfin Mobile and Web apps to MPV.")
+ (license license:gpl2)))
+
(define-public gallery-dl
(package
(name "gallery-dl")
--
2.41.0
I
I
Ian Eure wrote on 17 Feb 20:02 +0100
[PATCH v5 1/5] gnu: Add python-mpv-jsonipc.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
56949ff18e802e94168f2619672691c3d0e90740.1708196460.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-mpv-jsonipc): New variable.

Change-Id: Iec7679213d9b9e8e5cbf01a30838e27e71704e54
---
gnu/packages/python-xyz.scm | 16 ++++++++++++++++
1 file changed, 16 insertions(+)

Toggle diff (29 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 2dd8a12af5..ed80ee1d5e 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -25808,6 +25808,22 @@ (define-public online-judge-tools
submitting it.")
(license license:expat)))
+(define-public python-mpv-jsonipc
+ (package
+ (name "python-mpv-jsonipc")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-mpv-jsonipc" version))
+ (sha256
+ (base32 "0ymdwrx544a6gn6wm9dixpgzbfrbpxvcj5ys7m41cgb4lvpvx691"))))
+ (build-system pyproject-build-system)
+ (home-page "https://github.com/iwalton3/python-mpv-jsonipc")
+ (synopsis "Python API to MPV using JSON IPC")
+ (description "Python API to MPV using JSON IPC")
+ (license license:asl2.0)))
+
(define-public python-parso
(package
(name "python-parso")
--
2.41.0
I
I
Ian Eure wrote on 17 Feb 20:02 +0100
[PATCH v5 0/5] Add jellyfin-mpv-player and deps
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
cover.1708196460.git.ian@retrospec.tv
Sorry for the thrashing on this. Realized I'd written a home service to launch this, but neglected to include that in the patch series. Added it, and update the docs.

Ian Eure (5):
gnu: Add python-mpv-jsonipc.
gnu: Add python-jellyfin-apiclient.
gnu: Add python-pystray.
gnu: Add jellyfin-mpv-shim.
gnu: Add home-jellyfin-mpv-shim-service-type.

doc/guix.texi | 17 +++++++++++
gnu/home/services/media.scm | 35 ++++++++++++++++++++++
gnu/packages/python-xyz.scm | 60 +++++++++++++++++++++++++++++++++++++
gnu/packages/video.scm | 44 +++++++++++++++++++++++++++
4 files changed, 156 insertions(+)


base-commit: 3cf199dbcf85a44fa8370e786e568fc3feb7067c
--
2.41.0
I
I
Ian Eure wrote on 17 Feb 20:02 +0100
[PATCH v5 2/5] gnu: Add python-jellyfin-apiclient.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
f1717eefa65f8fa2004b613ba38aefdea4aa0adf.1708196460.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-jellyfin-apiclient): New variable.

Change-Id: If84546b14d380a3a10af63d4f41711125298487a
---
gnu/packages/python-xyz.scm | 18 ++++++++++++++++++
1 file changed, 18 insertions(+)

Toggle diff (31 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ed80ee1d5e..ba01a008bf 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -25824,6 +25824,24 @@ (define-public python-mpv-jsonipc
(description "Python API to MPV using JSON IPC")
(license license:asl2.0)))
+(define-public python-jellyfin-apiclient
+ (package
+ (name "python-jellyfin-apiclient")
+ (version "1.9.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jellyfin-apiclient-python" version))
+ (sha256
+ (base32 "0r67cp9nizvn3cbslgi30zpd3mw4a6zal0ygik3jv5lni1xdkk5w"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-certifi python-requests python-urllib3
+ python-websocket-client))
+ (home-page "https://github.com/jellyfin/jellyfin-apiclient-python")
+ (synopsis "Python API client for Jellyfin")
+ (description "Python API client for Jellyfin")
+ (license license:gpl3)))
+
(define-public python-parso
(package
(name "python-parso")
--
2.41.0
I
I
Ian Eure wrote on 17 Feb 20:02 +0100
[PATCH v5 3/5] gnu: Add python-pystray.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
3471315968e7106e0bac45533ac8b324785745b2.1708196460.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-pystray): New variable.

Change-Id: If10777c9ec91b549b9937b4825565223786a75cb
---
gnu/packages/python-xyz.scm | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index ba01a008bf..05c29049b8 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -31694,6 +31694,32 @@ (define-public python-qdarkstyle
Qt applications.")
(license license:expat)))
+(define-public python-pystray
+ (package
+ (name "python-pystray")
+ (version "0.19.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/moses-palmer/pystray")
+ (commit "1907f8681d6d421517c63d94f425f9cdd74d0034")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1vj6c8s7rbc7xc4bi5brx5629ls1ri9prcw9290v85hagilmp609"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ #:phases #~(modify-phases %standard-phases
+ (delete 'check)
+ (delete 'sanity-check))))
+ (native-inputs (list python-sphinx xorg-server-for-tests))
+ (propagated-inputs (list python-pillow python-six python-xlib))
+ (home-page "https://github.com/moses-palmer/pystray")
+ (synopsis "Create a system tray icon")
+ (description "This library allows you to create a system tray icon.")
+ (license license:lgpl3)))
+
(define-public python-bitstring
(package
(name "python-bitstring")
--
2.41.0
I
I
Ian Eure wrote on 17 Feb 20:02 +0100
[PATCH v5 4/5] gnu: Add jellyfin-mpv-shim.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
e74d426d6d03c8784e2f20f473aa501d105efdbe.1708196460.git.ian@retrospec.tv
* gnu/packages/video.scm (jellyfin-mpv-shim): New variable.

Change-Id: Ie030dee36b1c2afc796f082fdebf909cbddd59da
---
gnu/packages/video.scm | 44 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 44 insertions(+)

Toggle diff (57 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 894543d3cc..442500e24d 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -2751,6 +2751,50 @@ (define-public smplayer
the last played position, etc.")
(license license:gpl2+)))
+(define-public jellyfin-mpv-shim
+ (package
+ (name "jellyfin-mpv-shim")
+ (version "2.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jellyfin-mpv-shim" version))
+ (sha256
+ (base32 "1cy2sfv84k5nw8bqy4aa7v0hdawp7gk5s7wq850xizqk0sz7cipp"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ #:tests? #f ;There are no tests, but this tries to run the GUI.
+ #:phases #~(modify-phases %standard-phases
+ (delete 'sanity-check) ;This tries to run the GUI.
+ (add-after 'install 'install-desktop-file
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (apps (string-append out "/share/applications"))
+ (desktop-base "jellyfin_mpv_shim/integration/")
+ (package-id
+ "com.github.iwalton3.jellyfin-mpv-shim"))
+ (for-each (lambda (size)
+ (install-file (format #f
+ "~ajellyfin-~a.png"
+ desktop-base size) apps))
+ '(256 128 64 48 32 16))
+ (install-file (string-append desktop-base package-id
+ ".appdata.xml") apps)
+ (install-file (string-append desktop-base package-id
+ ".desktop") apps) #t))))))
+ (native-inputs (list xorg-server-for-tests))
+ (propagated-inputs (list `(,python "tk")
+ python-jellyfin-apiclient
+ python-mpv
+ python-mpv-jsonipc
+ python-pystray
+ python-requests))
+ (home-page "https://github.com/jellyfin/jellyfin-mpv-shim")
+ (synopsis "Cast media from Jellyfin Mobile and Web apps to MPV")
+ (description "Cast media from Jellyfin Mobile and Web apps to MPV.")
+ (license license:gpl2)))
+
(define-public gallery-dl
(package
(name "gallery-dl")
--
2.41.0
I
I
Ian Eure wrote on 17 Feb 20:02 +0100
[PATCH v5 5/5] gnu: Add home-jellyfin-mpv-shim-service-type.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
2c4777a3d17760fbef2b570d377812e437920525.1708196460.git.ian@retrospec.tv
* gnu/home/services/media.scm (home-jellyfin-mpv-shim-service-type): New variable.
* doc/guix.texi (Jellyfin Services): New section.
* doc/guix.texi (Kodi Services): Add subheading.

Change-Id: I037ab0602214fdaa1b032be51ff98ecf6b7ee16c
---
doc/guix.texi | 17 +++++++++++++++++
gnu/home/services/media.scm | 35 +++++++++++++++++++++++++++++++++++
2 files changed, 52 insertions(+)

Toggle diff (89 lines)
diff --git a/doc/guix.texi b/doc/guix.texi
index 04119a5955..58981f96d5 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -46042,6 +46042,8 @@ Media Home Services
@subsection Media Home Services
@cindex kodi
+@subsubheading Kodi Services
+
The @uref{https://kodi.tv, Kodi media center} can be run as a daemon on
a media server. With the @code{(gnu home services kodi)} service, you
can configure Kodi to run upon login.
@@ -46074,6 +46076,21 @@ Media Home Services
@end table
@end deftp
+@cindex jellyfin
+@subsubheading Jellyfin Services
+
+The @code{home-jellyfin-mpv-shim-service-type} in the @code{(gnu home services media)} module runs a cast client for the @uref{https://jellyfin.org/, Jellyfin} media system.
+
+To enable, add this to your home services:
+
+@lisp
+(service home-jellyfin-mpv-shim-service-type #f)
+@end lisp
+
+@defvar home-jellyfin-mpv-shim-service-type
+The type of the Jellyfin MPV Shim service.
+@end defvar
+
@node Networking Home Services
@subsection Networking Home Services
diff --git a/gnu/home/services/media.scm b/gnu/home/services/media.scm
index c6454dfe15..219bb97487 100644
--- a/gnu/home/services/media.scm
+++ b/gnu/home/services/media.scm
@@ -19,8 +19,10 @@
(define-module (gnu home services media)
#:use-module (srfi srfi-26)
#:use-module (gnu home services)
+ #:use-module (gnu home services desktop)
#:use-module (gnu home services shepherd)
#:use-module (gnu packages kodi)
+ #:use-module (gnu packages video)
#:use-module (gnu services configuration)
#:use-module (gnu services shepherd)
#:use-module (guix records)
@@ -66,3 +68,36 @@ (define home-kodi-service-type
(description
"Install and configure the Kodi media center so that it runs as a Shepherd
service.")))
+
+(define (jellyfin-mpv-shim-shepherd-service _ignore)
+ (list (shepherd-service
+ (documentation "Jellyfin MPV Shim.")
+ (provision '(jellyfin-mpv-shim jellyfin-client))
+
+ ;; Depend on 'x11-display', which sets 'DISPLAY' if an X11 server is
+ ;; available, and fails to start otherwise.
+ (requirement '(x11-display))
+
+ (modules '((srfi srfi-1)
+ (srfi srfi-26)))
+ (start #~(lambda _
+ (fork+exec-command
+ (list #$(file-append jellyfin-mpv-shim "/bin/jellyfin-mpv-shim"))
+
+ ;; Inherit the 'DISPLAY' variable set by 'x11-display'.
+ #:environment-variables
+ (cons (string-append "DISPLAY=" (getenv "DISPLAY"))
+ (remove (cut string-prefix? "DISPLAY=" <>)
+ (default-environment-variables))))))
+ (stop #~(make-kill-destructor)))))
+
+(define-public home-jellyfin-mpv-shim-service-type
+ (service-type
+ (name 'home-jellyfin-mpv-shim)
+ (extensions (list (service-extension home-shepherd-service-type
+ jellyfin-mpv-shim-shepherd-service)
+ ;; Ensure 'home-x11-service-type' is instantiated so we
+ ;; can depend on the Shepherd 'x11-display' service.
+ (service-extension home-x11-service-type
+ (const #t))))
+ (description "Run Jellyfin MPV Shim.")))
--
2.41.0
S
S
Sharlatan Hellseher wrote on 21 Feb 21:42 +0100
[PATCH 0/4] Add jellyfin-mpv-player and deps
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
87edd58s7i.fsf@gmail.com
Hi Ian,

QA looks green ^.-

I've noticed some minor picks in v5 you sent.

Toggle snippet (4 lines)
+(define-public jellyfin-mpv-shim
...
+ (license license:gpl2)))
Nix listes 5 licenses in the package
may you double check if it's still valid.

Toggle snippet (5 lines)
+(define-public python-mpv-jsonipc
...
+ (synopsis "Python API to MPV using JSON IPC")
+ (description "Python API to MPV using JSON IPC")
The description of the package needs to be longer than synopsis and
needs to include more info. No full stop after end of the sentence.

Toggle snippet (5 lines)
+(define-public python-jellyfin-apiclient
...
+ (synopsis "Python API client for Jellyfin")
+ (description "Python API client for Jellyfin")
Same here.

Toggle snippet (8 lines)
+(define-public python-pystray
...
+ (arguments
+ (list
+ #:phases #~(modify-phases %standard-phases
+ (delete 'check)
+ (delete 'sanity-check))))
Please use #:tests? flag and place some comments why it's disabled (no
tests, require network, all broken etc.). Does Sanity check fail due to
incompatible versions, if so consider add relax-requirement phase (see
code examples in python-xyz).

Thanks,
Oleg
-----BEGIN PGP SIGNATURE-----

iQIzBAEBCgAdFiEEmEeB3micIcJkGAhndtcnv/Ys0rUFAmXWYDEACgkQdtcnv/Ys
0rX4ew//YJu6K6Y7kfcyF76WSLLnLO647UAJ6rU1AgYEAm3LoDb2MXjXBNl6tQhJ
i/+470zfGH8hMGSy5a0HyVA+JkGkywgcT/BC8X5zWnf8BXig0YXGK1CHtLnTrMbB
zCLKj+sVUxq58to/zslpi93PV76IgYyAnhqL+A0dt5U3bcwxkDj98rMBj81t/8R6
DK3WbIdAUiR9s4PZ70i6UIqLCKwNnn/ZDbVeF6NdyjWuriusbwcdiKHmAItNX2Sk
7hRE2eNzImDMjSmCLMXC9xSukCvLNmHNsdS8ctifT0ypp+QXwrycX5ngbPYrAyD9
N/+ow3tlt7XLY1Fyzx02D17J1eARoC4GWYzuN31nM94GKBE4P48CjPJO9k3j2668
ybz0mZ0RuWu3vH8rDQg0OPIVC113WH0NCU6lJxc9EnFRop62efadedQsmDn4slb6
Uq7FR/2/gkllNhd754wGDDLlnrFgEBpZ0hizJ1ncUzdXoyVIXRCwJQRhgTbWklFn
bMWrLTJ5w3M63jZw7UAzgW/RP2NAt506QZi1MpwbFYMiDsbpaqx7UvxOZG0yTiwJ
q8hemXxktPuytDSn/Jz6JEae7UNerx4L7p4Wh5Fa5FIw+jWCHRvJ8PT8v2fP+v76
mErpMazrv76nNBfAxYu3+BMet/kx6dESdmA3EUL+5aIvsX3K4rA=
=UQiB
-----END PGP SIGNATURE-----

I
I
Ian Eure wrote 5 days ago
[PATCH v6 1/5] gnu: Add python-mpv-jsonipc.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
dc985046e361e0cdc8eaca4e097e370807ba96e8.1708899540.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-mpv-jsonipc): New variable.

Change-Id: Iec7679213d9b9e8e5cbf01a30838e27e71704e54
---
gnu/packages/python-xyz.scm | 17 +++++++++++++++++
1 file changed, 17 insertions(+)

Toggle diff (30 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index a051f5a8db..b6001416a6 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -25808,6 +25808,23 @@ (define-public online-judge-tools
submitting it.")
(license license:expat)))
+(define-public python-mpv-jsonipc
+ (package
+ (name "python-mpv-jsonipc")
+ (version "1.2.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "python-mpv-jsonipc" version))
+ (sha256
+ (base32 "0ymdwrx544a6gn6wm9dixpgzbfrbpxvcj5ys7m41cgb4lvpvx691"))))
+ (build-system pyproject-build-system)
+ (home-page "https://github.com/iwalton3/python-mpv-jsonipc")
+ (synopsis "Python API to control MPV using JSON IPC")
+ (description "python-mpv-jsonipc implements an interface similar to
+python-mpv, but it uses the JSON IPC protocol instead of the C API.")
+ (license license:asl2.0)))
+
(define-public python-parso
(package
(name "python-parso")
--
2.41.0
I
I
Ian Eure wrote 5 days ago
[PATCH v6 0/5] Add jellyfin-mpv-player and deps
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
cover.1708899540.git.ian@retrospec.tv
- Corrects package description/synopsis issues.
- Explain why tests are disabled.
- Add comment explaining why sanity-check phase of jellyfin-mpv-shim is disabled.
- Fix sanity-check phase of python-pystray.
- Change jellyfin-mpv-shim propagated-inputs to inputs.
- Correct jellyfin-mpv-shim inputs.
- Only start the service if the shim is configured. Document this.

Ian Eure (5):
gnu: Add python-mpv-jsonipc.
gnu: Add python-jellyfin-apiclient.
gnu: Add python-pystray.
gnu: Add jellyfin-mpv-shim.
gnu: Add home-jellyfin-mpv-shim-service-type.

doc/guix.texi | 19 ++++++++++
gnu/home/services/media.scm | 42 +++++++++++++++++++++
gnu/packages/python-xyz.scm | 73 ++++++++++++++++++++++++++++++++++++
gnu/packages/video.scm | 75 +++++++++++++++++++++++++++++++++++++
4 files changed, 209 insertions(+)


base-commit: b25b94335a3ee8d68d2145da8e5ea0325ecea451
--
2.41.0
I
I
Ian Eure wrote 5 days ago
[PATCH v6 2/5] gnu: Add python-jellyfin-apiclient.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
c40171e6981e706bce7d979fae1ad5522609a38f.1708899540.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-jellyfin-apiclient): New variable.

Change-Id: If84546b14d380a3a10af63d4f41711125298487a
---
gnu/packages/python-xyz.scm | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)

Toggle diff (33 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index b6001416a6..1ed1f0e135 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -25825,6 +25825,26 @@ (define-public python-mpv-jsonipc
python-mpv, but it uses the JSON IPC protocol instead of the C API.")
(license license:asl2.0)))
+(define-public python-jellyfin-apiclient
+ (package
+ (name "python-jellyfin-apiclient")
+ (version "1.9.2")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jellyfin-apiclient-python" version))
+ (sha256
+ (base32 "0r67cp9nizvn3cbslgi30zpd3mw4a6zal0ygik3jv5lni1xdkk5w"))))
+ (build-system pyproject-build-system)
+ (propagated-inputs (list python-certifi python-requests python-urllib3
+ python-websocket-client))
+ (home-page "https://github.com/jellyfin/jellyfin-apiclient-python")
+ (synopsis "Python API client for Jellyfin")
+ (description "python-jellyfin-apiclient allows use of the Jellyfin API
+from Python. It was extracted from the Jellyfin Kodi plugin so other users
+may use the Jellyfin API more easily.")
+ (license license:gpl3)))
+
(define-public python-parso
(package
(name "python-parso")
--
2.41.0
I
I
Ian Eure wrote 5 days ago
[PATCH v6 3/5] gnu: Add python-pystray.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
15207e8eede378884440bdd136a9d900226f0817.1708899540.git.ian@retrospec.tv
* gnu/packages/python-xyz.scm (python-pystray): New variable.

Change-Id: If10777c9ec91b549b9937b4825565223786a75cb
---
gnu/packages/python-xyz.scm | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)

Toggle diff (49 lines)
diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 1ed1f0e135..36442f0870 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -31728,6 +31728,42 @@ (define-public python-qdarkstyle
Qt applications.")
(license license:expat)))
+(define-public python-pystray
+ (package
+ (name "python-pystray")
+ (version "0.19.5")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/moses-palmer/pystray")
+ (commit "1907f8681d6d421517c63d94f425f9cdd74d0034")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1vj6c8s7rbc7xc4bi5brx5629ls1ri9prcw9290v85hagilmp609"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ ;; The test suite requires user interaction, there are no automated
+ ;; tests.
+ #:tests? #false
+ #:phases #~(modify-phases %standard-phases
+ (add-before 'sanity-check 'use-dummy-backend
+ (lambda _
+ ;; Without setting this, pystray tries to connect to
+ ;; X11 on import.
+ (setenv "PYSTRAY_BACKEND" "dummy"))))))
+ (native-inputs (list python-sphinx))
+ (propagated-inputs (list python-pillow python-six python-xlib))
+ (home-page "https://github.com/moses-palmer/pystray")
+ (synopsis "Create a system tray icon")
+ (description "This library allows you to create a system tray icon.
+
+It allows specifying an icon, a title and a callback for when the icon is
+activated. The icon and title can be changed after the icon has been created,
+and the visibility of the icon can be toggled.")
+ (license license:lgpl3)))
+
(define-public python-bitstring
(package
(name "python-bitstring")
--
2.41.0
I
I
Ian Eure wrote 5 days ago
[PATCH v6 4/5] gnu: Add jellyfin-mpv-shim.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
ec8c2eec6e2c09b0de04fc6c23d41fc02a808c43.1708899540.git.ian@retrospec.tv
* gnu/packages/video.scm (jellyfin-mpv-shim): New variable.

Change-Id: Ie030dee36b1c2afc796f082fdebf909cbddd59da
---
gnu/packages/video.scm | 75 ++++++++++++++++++++++++++++++++++++++++++
1 file changed, 75 insertions(+)

Toggle diff (95 lines)
diff --git a/gnu/packages/video.scm b/gnu/packages/video.scm
index 894543d3cc..efb016298b 100644
--- a/gnu/packages/video.scm
+++ b/gnu/packages/video.scm
@@ -162,6 +162,7 @@ (define-module (gnu packages video)
#:use-module (gnu packages man)
#:use-module (gnu packages markup)
#:use-module (gnu packages maths)
+ #:use-module (gnu packages messaging)
#:use-module (gnu packages music)
#:use-module (gnu packages mp3)
#:use-module (gnu packages multiprecision)
@@ -2751,6 +2752,80 @@ (define-public smplayer
the last played position, etc.")
(license license:gpl2+)))
+(define-public jellyfin-mpv-shim
+ (package
+ (name "jellyfin-mpv-shim")
+ (version "2.6.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "jellyfin-mpv-shim" version))
+ (sha256
+ (base32 "1cy2sfv84k5nw8bqy4aa7v0hdawp7gk5s7wq850xizqk0sz7cipp"))))
+ (build-system python-build-system)
+ (arguments
+ (list
+ ;; There's no test suite, but the code is ill-behaved and tries to open
+ ;; network connections at module import time, which makes `python
+ ;; setup.py test' fail.
+ #:tests? #f
+ #:phases #~(modify-phases %standard-phases
+ ;; sanity-check loads console_scripts endpoints, which
+ ;; launches the program, which makes the build hang.
+ ;; disable it.
+ (delete 'sanity-check)
+ (add-after 'unpack 'disable-updates
+ (lambda _
+ (substitute* "jellyfin_mpv_shim/conf.py"
+ (("check_updates: bool = True")
+ "check_updates: bool = False")
+ (("notify_updates: bool = True")
+ "notify_updates: bool = False"))))
+ (add-after 'install 'install-desktop-file
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((out (assoc-ref outputs "out"))
+ (apps (string-append out "/share/applications"))
+ (desktop-base "jellyfin_mpv_shim/integration/")
+ (package-id
+ "com.github.iwalton3.jellyfin-mpv-shim"))
+ (for-each (lambda (size)
+ (install-file (format #f
+ "~ajellyfin-~a.png"
+ desktop-base size) apps))
+ '(256 128 64 48 32 16))
+ (install-file (string-append desktop-base package-id
+ ".appdata.xml") apps)
+ (install-file (string-append desktop-base package-id
+ ".desktop") apps) #t))))))
+ (inputs (list `(,python "tk")
+ python-jellyfin-apiclient
+ python-jinja2
+ python-mpv
+ python-mpv-jsonipc
+ python-pypresence
+ python-pystray
+ python-requests))
+ (home-page "https://github.com/jellyfin/jellyfin-mpv-shim")
+ (synopsis "Cast media from Jellyfin Mobile and Web apps to MPV")
+ (description "Jellyfin MPV Shim is a cross-platform cast client for
+Jellyfin. It has support for all your advanced media files without
+transcoding, as well as tons of features which set it apart from other
+multimedia clients.")
+ (license (list
+ ;; jellyfin-mpv-shim
+ license:gpl3
+
+ ;; jellyfin-mpv-shim, and Anime4K, FSRCNNX, NVIDIA Image
+ ;; Scaling, AMD FidelityFX Super Resolution, AMD
+ ;; FidelityFX Contrast Adaptive Sharpening shaders.
+ license:expat
+
+ ;; Static Grain shader.
+ license:public-domain
+
+ ;; KrigBilatera, SSimDownscaler, and NNEDI3 shaders.
+ license:lgpl3+))))
+
(define-public gallery-dl
(package
(name "gallery-dl")
--
2.41.0
I
I
Ian Eure wrote 5 days ago
[PATCH v6 5/5] gnu: Add home-jellyfin-mpv-shim-service-type.
(address . 67120@debbugs.gnu.org)(name . Ian Eure)(address . ian@retrospec.tv)
6cb1e94800f6f8d57b574794549af0c693b89534.1708899540.git.ian@retrospec.tv
* gnu/home/services/media.scm (home-jellyfin-mpv-shim-service-type): New variable.
* doc/guix.texi (Jellyfin Services): New section.
* doc/guix.texi (Kodi Services): Add subheading.

Change-Id: I037ab0602214fdaa1b032be51ff98ecf6b7ee16c
---
doc/guix.texi | 19 +++++++++++++++++
gnu/home/services/media.scm | 42 +++++++++++++++++++++++++++++++++++++
2 files changed, 61 insertions(+)

Toggle diff (98 lines)
diff --git a/doc/guix.texi b/doc/guix.texi
index 671cdab6f8..f4d64f9df7 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -46103,6 +46103,8 @@ Media Home Services
@subsection Media Home Services
@cindex kodi
+@subsubheading Kodi Services
+
The @uref{https://kodi.tv, Kodi media center} can be run as a daemon on
a media server. With the @code{(gnu home services kodi)} service, you
can configure Kodi to run upon login.
@@ -46135,6 +46137,23 @@ Media Home Services
@end table
@end deftp
+@cindex jellyfin
+@subsubheading Jellyfin Services
+
+The @code{home-jellyfin-mpv-shim-service-type} in the @code{(gnu home services media)} module runs a cast client for the @uref{https://jellyfin.org/, Jellyfin} media system.
+
+To enable, add this to your home services:
+
+@lisp
+(service home-jellyfin-mpv-shim-service-type #f)
+@end lisp
+
+The service only starts if @code{jellyfin-mpv-shim} has been configured with a remote server and credentials. This must be done manually, by launching @code{jellyfin-mpv-shim}. After configuring the server, the service will start automatically when you log in.
+
+@defvar home-jellyfin-mpv-shim-service-type
+The type of the Jellyfin MPV Shim service.
+@end defvar
+
@node Networking Home Services
@subsection Networking Home Services
diff --git a/gnu/home/services/media.scm b/gnu/home/services/media.scm
index c6454dfe15..a7fcf75b06 100644
--- a/gnu/home/services/media.scm
+++ b/gnu/home/services/media.scm
@@ -19,8 +19,10 @@
(define-module (gnu home services media)
#:use-module (srfi srfi-26)
#:use-module (gnu home services)
+ #:use-module (gnu home services desktop)
#:use-module (gnu home services shepherd)
#:use-module (gnu packages kodi)
+ #:use-module (gnu packages video)
#:use-module (gnu services configuration)
#:use-module (gnu services shepherd)
#:use-module (guix records)
@@ -66,3 +68,43 @@ (define home-kodi-service-type
(description
"Install and configure the Kodi media center so that it runs as a Shepherd
service.")))
+
+(define (jellyfin-mpv-shim-shepherd-service _ignore)
+ (list (shepherd-service
+ (documentation "Jellyfin MPV Shim.")
+ (provision '(jellyfin-mpv-shim jellyfin-client))
+
+ ;; Depend on 'x11-display', which sets 'DISPLAY' if an X11 server is
+ ;; available, and fails to start otherwise.
+ (requirement '(x11-display))
+
+ (modules '((srfi srfi-1)
+ (srfi srfi-26)
+ (srfi srfi-98)))
+ (start #~(lambda _
+ ;; Only start if a server has been configured.
+ (if (file-exists?
+ (string-append
+ (get-environment-variable "XDG_CONFIG_HOME")
+ "/jellyfin-mpv-shim/cred.json"))
+ (fork+exec-command
+ (list #$(file-append jellyfin-mpv-shim "/bin/jellyfin-mpv-shim"))
+
+ ;; Inherit the 'DISPLAY' variable set by 'x11-display'.
+ #:environment-variables
+ (cons (string-append "DISPLAY=" (getenv "DISPLAY"))
+ (remove (cut string-prefix? "DISPLAY=" <>)
+ (default-environment-variables))))
+ #f)))
+ (stop #~(make-kill-destructor)))))
+
+(define-public home-jellyfin-mpv-shim-service-type
+ (service-type
+ (name 'home-jellyfin-mpv-shim)
+ (extensions (list (service-extension home-shepherd-service-type
+ jellyfin-mpv-shim-shepherd-service)
+ ;; Ensure 'home-x11-service-type' is instantiated so we
+ ;; can depend on the Shepherd 'x11-display' service.
+ (service-extension home-x11-service-type
+ (const #t))))
+ (description "Run Jellyfin MPV Shim.")))
--
2.41.0
I
I
Ian Eure wrote 5 days ago
Re: [PATCH 0/4] Add jellyfin-mpv-player and deps
(name . Sharlatan Hellseher)(address . sharlatanus@gmail.com)(address . 67120@debbugs.gnu.org)
87wmqskwff.fsf@retrospec.tv
Hi Sharlatan,

Sharlatan Hellseher <sharlatanus@gmail.com> writes:

Toggle quote (9 lines)
> [[PGP Signed Part:Undecided]]
>
> Hi Ian,
>
> QA looks green ^.-
>
> I've noticed some minor picks in v5 you sent.
>

Thank you for the feedback, I sent an updated patch series.

I had to keep the sanity-check phase of jellyfin-mpv-shim removed,
because the program is ill-behaved and tries to do stuff at module
import time, which breaks the build.

Thanks,

— Ian
?