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:
parent
77a3499600
commit
202ac747e6
2 changed files with 54 additions and 1 deletions
|
@ -36277,6 +36277,25 @@ like to serve.
|
||||||
@node Game Services
|
@node Game Services
|
||||||
@subsection 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
|
@subsubheading The Battle for Wesnoth Service
|
||||||
@cindex wesnothd
|
@cindex wesnothd
|
||||||
@uref{https://wesnoth.org, The Battle for Wesnoth} is a fantasy, turn
|
@uref{https://wesnoth.org, The Battle for Wesnoth} is a fantasy, turn
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
|
|
||||||
(define-module (gnu services games)
|
(define-module (gnu services games)
|
||||||
#:use-module (gnu services)
|
#:use-module (gnu services)
|
||||||
|
#:use-module (gnu services configuration)
|
||||||
#:use-module (gnu services shepherd)
|
#:use-module (gnu services shepherd)
|
||||||
#:use-module (gnu packages admin)
|
#:use-module (gnu packages admin)
|
||||||
#:use-module (gnu packages games)
|
#:use-module (gnu packages games)
|
||||||
|
@ -28,12 +29,45 @@
|
||||||
#:autoload (guix least-authority) (least-authority-wrapper)
|
#:autoload (guix least-authority) (least-authority-wrapper)
|
||||||
#:use-module (guix gexp)
|
#:use-module (guix gexp)
|
||||||
#:use-module (guix modules)
|
#:use-module (guix modules)
|
||||||
|
#:use-module (guix packages)
|
||||||
#:use-module (guix records)
|
#:use-module (guix records)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
#:export (wesnothd-configuration
|
#:export (joycond-configuration
|
||||||
|
joycond-configuration?
|
||||||
|
joycond-service-type
|
||||||
|
|
||||||
|
wesnothd-configuration
|
||||||
wesnothd-configuration?
|
wesnothd-configuration?
|
||||||
wesnothd-service-type))
|
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
|
;;; The Battle for Wesnoth server
|
||||||
;;;
|
;;;
|
||||||
|
|
Reference in a new issue