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.
This commit is contained in:
David Thompson 2023-01-13 17:04:21 -05:00
parent 77a3499600
commit 202ac747e6
No known key found for this signature in database
GPG key ID: 8328C7470FF1D807
2 changed files with 54 additions and 1 deletions

View file

@ -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

View file

@ -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 @@ (define-module (gnu services games)
#: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
;;;