summaryrefslogtreecommitdiff
path: root/gnu/packages/hardware.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/hardware.scm')
-rw-r--r--gnu/packages/hardware.scm165
1 files changed, 163 insertions, 2 deletions
diff --git a/gnu/packages/hardware.scm b/gnu/packages/hardware.scm
index 9de7f7d63d..0f8f5e7809 100644
--- a/gnu/packages/hardware.scm
+++ b/gnu/packages/hardware.scm
@@ -13,7 +13,7 @@
;;; Copyright © 2022 Maxime Devos <maximedevos@telenet.be>
;;; Copyright © 2022 Marius Bakke <marius@gnu.org>
;;; Copyright © 2022 Marcel Kupiec <formbi@protonmail.com>
-;;; Copyright © 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2022 Maxim Cournoyer <maxim@guixotic.coop>
;;; Copyright © 2022, 2025 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2023 Spencer Skylar Chan <schan12@umd.edu>
;;; Copyright © 2023 Foundation Devices, Inc. <hello@foundationdevices.com>
@@ -21,6 +21,7 @@
;;; Copyright © 2024 Zheng Junjie <873216071@qq.com>
;;; Copyright © 2024 Jakob Kirsch <jakob.kirsch@web.de>
;;; Copyright © 2025 Eric Bavier <bavier@posteo.net>
+;;; Copyright © 2025 Arun Isaac <arunisaac@systemreboot.net>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -73,6 +74,8 @@
#:use-module (gnu packages linux)
#:use-module (gnu packages lua)
#:use-module (gnu packages lxqt)
+ #:use-module (gnu packages man)
+ #:use-module (gnu packages mes)
#:use-module (gnu packages messaging)
#:use-module (gnu packages mtools)
#:use-module (gnu packages package-management)
@@ -106,6 +109,7 @@
#:use-module (guix build-system cmake)
#:use-module (guix build-system glib-or-gtk)
#:use-module (guix build-system gnu)
+ #:use-module (guix build-system guile)
#:use-module (guix build-system meson)
#:use-module (guix build-system perl)
#:use-module (guix build-system pyproject)
@@ -211,6 +215,98 @@ Notable features include:
@end itemize")
(license (list license:bsd-0 license:gpl3+))))
+(define-public deskflow
+ (package
+ (name "deskflow")
+ (version "1.23.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/deskflow/deskflow")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0wgj0sjnxkfplpq05q2lqgag29l7bf4cqdw0xmr89ayrh1nyjxa1"))))
+ (build-system cmake-build-system)
+ (arguments
+ (list
+ #:configure-flags
+ #~(list "-DCMAKE_SKIP_RPATH=ON")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'patch-files
+ (lambda _
+ (substitute* "deploy/linux/deploy.cmake"
+ (("message.FATAL_ERROR.*os-release.*")
+ "set(RELEASE_FILE_CONTENTS \"\")\n"))
+ (substitute* "src/lib/deskflow/unix/AppUtilUnix.cpp"
+ (("/usr/share/X11/xkb/rules/evdev.xml")
+ (string-append #$(this-package-input "xkeyboard-config")
+ "/share/X11/xkb/rules/evdev.xml")))))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (setenv "QT_QPA_PLATFORM" "offscreen")
+ ;; From the project GitHub actions: "Integration tests are
+ ;; flakey by nature, make them optional". See:
+ ;; <.github/workflows/continuous-integration.yml>.
+ (invoke "./bin/legacytests"))))
+ (add-after 'install 'wrap-executable
+ (lambda _
+ (let ((qtbase #$(this-package-input "qtbase")))
+ (wrap-program (string-append #$output "/bin/deskflow")
+ `("QT_QPA_PLATFORM_PLUGIN_PATH" ":" =
+ (,(string-append qtbase "/lib/qt6/plugins/platforms"))))))))))
+ (native-inputs
+ (list doxygen
+ googletest
+ sysprof
+ vulkan-headers
+ coreutils
+ help2man
+ pkg-config))
+ (inputs
+ (list bash-minimal
+ cli11
+ gdk-pixbuf
+ libei
+ libportal
+ libx11
+ libxi
+ libxinerama
+ libxkbcommon
+ libxkbfile
+ libxrandr
+ libxtst
+ libsm
+ libice
+ openssl
+ pugixml
+ python
+ qtbase
+ qtsvg
+ qttranslations
+ qttools
+ qtwayland
+ tomlplusplus
+ wayland
+ wayland-protocols
+ xkeyboard-config))
+ (home-page "https://deskflow.org/")
+ (synopsis "Share a single keyboard and mouse between multiple computers")
+ (description
+ "Deskflow is a keyboard and mouse sharing app. Use the keyboard,
+mouse,or trackpad of one computer to control nearby computers, and work
+seamlessly between them. It's like a software KVM (but without the video).
+TLS encryption is enabled by default. It supports Wayland clipboard
+sharing.")
+ (license license:gpl2)))
+
+;; Added on 2025-09-24.
+(define-public barrier
+ (deprecated-package "barrier" deskflow))
+
(define-public hw-probe
(package
(name "hw-probe")
@@ -380,7 +476,7 @@ Notable features include:
procps
psmisc ;for pstree
rpm
- sane-backends
+ sane
smartmontools
sysstat
upower
@@ -782,6 +878,38 @@ color (good for notifications)
(home-page "https://github.com/enwi/hueplusplus")
(license license:lgpl3+)))
+(define-public utmp-cli
+ (package
+ (name "utmp-cli")
+ (version "1.063")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/usbtemp/utmp-cli")
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "07j827nin4wm4hh8ljsj1dj3harb3dxan05ck8n68c443qqakz4a"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:tests? #f
+ #:make-flags #~(list (string-append "CC=" #$(cc-for-target)))
+ #:phases
+ #~(modify-phases %standard-phases
+ (delete 'configure)
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (install-file "utmp-cli"
+ (string-append (assoc-ref outputs "out")
+ "/bin")))))))
+ (home-page "https://github.com/usbtemp/utmp-cli")
+ (synopsis "Read temperature from USB thermometer")
+ (description "Read temperature from usbtemp.com USB thermometer and
+DS9097E compatible 1-wire adapter with one DS18B20 digital probe attached
+through command line interface.")
+ (license license:expat)))
+
(define-public i7z
(let ((revision "0")
(commit "1a41ff13db747e962456ddbb5ccb2b7fc43ca0cb"))
@@ -1669,3 +1797,36 @@ output relays.")
"This is the Python extension to @code{usbrelay}, a Linux driver based on
hidapi for a variety of inexpensive HID compatible USB relay modules. This
package also includes @code{usbrelayd}.")))
+
+(define-public guile-usbrelay
+ (package
+ (name "guile-usbrelay")
+ (version "0.1.0")
+ (home-page "https://codeberg.org/pisemsky/guile-usbrelay")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url home-page)
+ (commit version)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "0ndgkazv9bnyj45pccym11245c65hlvsvzmx0acpzlywz7xxyy72"))))
+ (build-system guile-build-system)
+ (arguments
+ (list
+ #:source-directory "modules"
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-before 'build 'compile-ffi
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "GUILE_AUTO_COMPILE" "0")
+ (invoke "guile" "make.scm"))))))
+ (native-inputs (list gcc guile-3.0 nyacc pkg-config))
+ (inputs (list hidapi))
+ (propagated-inputs (list nyacc))
+ (synopsis "Control USB HID relays from Guile")
+ (description
+ "This package provides a Guile Scheme API to control USB HID relay modules
+produced by dcttech.")
+ (license license:lgpl3+)))