[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
branch master updated: gnu: services: Add joycond-service.
From: |
guix-commits |
Subject: |
branch master updated: gnu: services: Add joycond-service. |
Date: |
Sat, 14 Jan 2023 08:00:25 -0500 |
This is an automated email from the git hooks/post-receive script.
davexunit pushed a commit to branch master
in repository guix.
The following commit(s) were added to refs/heads/master by this push:
new 202ac747e6 gnu: services: Add joycond-service.
202ac747e6 is described below
commit 202ac747e697a2373f0201be490e668695283eb4
Author: David Thompson <dthompson2@worcester.edu>
AuthorDate: Fri Jan 13 17:04:21 2023 -0500
gnu: services: Add joycond-service.
* gnu/services/games.scm (joycond-configuration): New configuration type.
(joycond-shepherd-service): New procedure.
(joycond-service-type): New variable.
* doc/guix.texi (Game Services): Document it.
---
doc/guix.texi | 19 +++++++++++++++++++
gnu/services/games.scm | 36 +++++++++++++++++++++++++++++++++++-
2 files changed, 54 insertions(+), 1 deletion(-)
diff --git a/doc/guix.texi b/doc/guix.texi
index 751d0957d8..c07ec89b2f 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -36277,6 +36277,25 @@ like to serve.
@node Game Services
@subsection Game Services
+@subsubheading Joycond service
+@cindex joycond
+The joycond service allows the pairing of Nintendo joycon game
+controllers over Bluetooth. (@pxref{Desktop Services} for setting up
+Bluetooth.)
+
+@deftp {Data Type} joycond-configuration
+Data type representing the configuration of @command{joycond}.
+
+@table @asis
+@item @code{package} (default: @code{joycond})
+The joycond package to use.
+@end table
+@end deftp
+
+@defvar joycond-service-type
+Service type for the joycond service.
+@end defvar
+
@subsubheading The Battle for Wesnoth Service
@cindex wesnothd
@uref{https://wesnoth.org, The Battle for Wesnoth} is a fantasy, turn
diff --git a/gnu/services/games.scm b/gnu/services/games.scm
index 6c2af44b49..e63c1c1299 100644
--- a/gnu/services/games.scm
+++ b/gnu/services/games.scm
@@ -19,6 +19,7 @@
(define-module (gnu services games)
#:use-module (gnu services)
+ #:use-module (gnu services configuration)
#:use-module (gnu services shepherd)
#:use-module (gnu packages admin)
#:use-module (gnu packages games)
@@ -28,12 +29,45 @@
#:autoload (guix least-authority) (least-authority-wrapper)
#:use-module (guix gexp)
#:use-module (guix modules)
+ #:use-module (guix packages)
#:use-module (guix records)
#:use-module (ice-9 match)
- #:export (wesnothd-configuration
+ #:export (joycond-configuration
+ joycond-configuration?
+ joycond-service-type
+
+ wesnothd-configuration
wesnothd-configuration?
wesnothd-service-type))
+;;;
+;;; Joycond
+;;;
+
+(define-configuration/no-serialization joycond-configuration
+ (package (package joycond) "The joycond package to use"))
+
+(define (joycond-shepherd-service config)
+ (let ((joycond (joycond-configuration-package config)))
+ (list (shepherd-service
+ (documentation "Run joycond.")
+ (provision '(joycond))
+ (requirement '(bluetooth))
+ (start #~(make-forkexec-constructor
+ (list #$(file-append joycond "/bin/joycond"))))
+ (stop #~(make-kill-destructor))))))
+
+(define joycond-service-type
+ (service-type
+ (name 'joycond)
+ (description
+ "Run @command{joycond} for pairing Nintendo joycons via Bluetooth.")
+ (extensions
+ (list (service-extension shepherd-root-service-type
+ joycond-shepherd-service)))
+ (default-value (joycond-configuration))))
+
+
;;;
;;; The Battle for Wesnoth server
;;;
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- branch master updated: gnu: services: Add joycond-service.,
guix-commits <=