Subject: [PATCH] gnu: Add python-streamdeck-ui.

From: Brian Cully <[email-masked]>
Date: Fri, 30 Dec 2022 16:46:02 -0500

* gnu/packages/python-xyz.scm: (python-streamdeck-ui) New variable.
---
This patch requires `python-elgato-streamdeck', which is in patch #60437.
 gnu/packages/python-xyz.scm | 36 ++++++++++++++++++++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm
index 445efe563b..2f36342b62 100644
--- a/gnu/packages/python-xyz.scm
+++ b/gnu/packages/python-xyz.scm
@@ -27734,6 +27734,42 @@ (define-public python-rnc2rng
 equivalent schemata in the XML-based default RELAX NG syntax.")
     (license license:expat)))
 
+(define-public python-streamdeck-ui
+  (package
+    (name "python-streamdeck-ui")
+    (version "2.0.6")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/timothycrosley/streamdeck-ui")
+                    (commit (string-append "v" version))))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1kx2kns5fzqs5k0zp3x9365pjsk75k4dzx2by9x990wzhzk3xng5"))))
+    (build-system pyproject-build-system)
+    (arguments
+     ;; tests require `python-hypothesis-auto', which isn't (yet) in Guix.
+     `(#:tests? #f
+       #:phases (modify-phases %standard-phases
+                  ;; sanity check uses precise dependency versions, and as a result,
+                  ;; will break constantly for no good reason all the time.
+                  (delete 'sanity-check))))
+    (home-page "https://timothycrosley.github.io/streamdeck-ui/")
+    (synopsis "User interface for controlling an Elgato Stream Deck")
+    (description
+     "This package provides a service, Web Interface, and UI for interacting with your
+computer using a Stream Deck")
+    (license license:expat)
+    (propagated-inputs (list python-cairosvg
+                             python-elgato-streamdeck
+                             python-filetype
+                             python-pillow
+                             python-pynput
+                             python-pyside-2
+                             python-xlib))
+    (native-inputs (list poetry python-toolchain))))
+
 (define-public python-elgato-streamdeck
   (package
     (name "python-elgato-streamdeck")
-- 
2.38.1