summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-08-29 13:58:16 -0400
committerMaxim Cournoyer <maxim.cournoyer@gmail.com>2022-09-12 20:55:45 -0400
commita412817d84b78461a23855bb65d5b73bc712c3f5 (patch)
tree77761ccdec5d11193a511455afbd41e6ede48e24 /gnu
parentbfcd2a86fbbf0ce6eaacc2a7f5177ae7bc8a2b86 (diff)
downloadguix-a412817d84b78461a23855bb65d5b73bc712c3f5.tar.gz
gnu: Add python-libevdev.
* gnu/packages/freedesktop.scm (python-libevdev): New variable.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/freedesktop.scm42
1 files changed, 42 insertions, 0 deletions
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index e2a176c2c2..c62efbff00 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -939,6 +939,48 @@ backends, PackageKit can perform these tasks using the appropriate package
 manager for the current system.")
     (license license:gpl2+)))
 
+(define-public python-libevdev
+  (package
+    (name "python-libevdev")
+    (version "0.11")
+    (source (origin
+              (method url-fetch)
+              (uri (pypi-uri "libevdev" version))
+              (sha256
+               (base32
+                "03snix86j0angq0lydp29f8833clxq8h0x4spmh8lj7j9mm01jp9"))))
+    (build-system python-build-system)
+    (arguments
+     (list
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'patch-dlopen-calls
+            (lambda* (#:key inputs #:allow-other-keys)
+              (substitute* "libevdev/_clib.py"
+                (("libevdev.so.2")
+                 (search-input-file inputs "lib/libevdev.so.2")))))
+          (replace 'check
+            (lambda* (#:key tests? #:allow-other-keys)
+              (when tests?
+                (invoke "pytest" "-vv" "test")))))))
+    (native-inputs (list python-pytest))
+    (inputs (list libevdev))
+    (home-page "https://gitlab.freedesktop.org/libevdev/python-libevdev")
+    (synopsis "Python wrapper for libevdev")
+    (description "This package provides a Python wrapper around
+@code{libevdev}, taking advantage of @code{libevdev}'s advanced event
+handling.  Documentation is available at
+@url{https://python-libevdev.readthedocs.io/en/latest/}.
+@code{libevdev} makes it easy to:
+@itemize
+@item read and parse events from an input device;
+@item create a virtual input device and make it send events;
+@item duplicate an existing device and modify the event stream.
+@end itemize
+For information about libevdev, see:
+@url{https://freedesktop.org/wiki/Software/libevdev/}.")
+    (license license:expat)))
+
 (define-public python-pyxdg
   (package
     (name "python-pyxdg")