summaryrefslogtreecommitdiff
path: root/gnu/services/games.scm
diff options
context:
space:
mode:
authorEfraim Flashner <efraim@flashner.co.il>2023-01-30 11:33:18 +0200
committerEfraim Flashner <efraim@flashner.co.il>2023-01-30 12:39:40 +0200
commit4cf1acc7f3033b50b0bf19e02c9f522d522d338c (patch)
tree9fd64956ee60304c15387eb394cd649e49f01467 /gnu/services/games.scm
parentedb8c09addd186d9538d43b12af74d6c7aeea082 (diff)
parent595b53b74e3ef57a1c0c96108ba86d38a170a241 (diff)
Merge remote-tracking branch 'origin/master' into core-updates
Conflicts: doc/guix.texi gnu/local.mk gnu/packages/admin.scm gnu/packages/base.scm gnu/packages/chromium.scm gnu/packages/compression.scm gnu/packages/databases.scm gnu/packages/diffoscope.scm gnu/packages/freedesktop.scm gnu/packages/gnome.scm gnu/packages/gnupg.scm gnu/packages/guile.scm gnu/packages/inkscape.scm gnu/packages/llvm.scm gnu/packages/openldap.scm gnu/packages/pciutils.scm gnu/packages/ruby.scm gnu/packages/samba.scm gnu/packages/sqlite.scm gnu/packages/statistics.scm gnu/packages/syndication.scm gnu/packages/tex.scm gnu/packages/tls.scm gnu/packages/version-control.scm gnu/packages/xml.scm guix/build-system/copy.scm guix/scripts/home.scm
Diffstat (limited to 'gnu/services/games.scm')
-rw-r--r--gnu/services/games.scm36
1 files changed, 35 insertions, 1 deletions
diff --git a/gnu/services/games.scm b/gnu/services/games.scm
index 6c2af44b49c..e63c1c12993 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,13 +29,46 @@
#: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
;;;