[bug#76963,v2,2/2] home: Add home-snuik-service.
Commit Message
* gnu/home/services/messaging.scm (home-snuik-service-type): New variable.
* doc/guix.texi (Messaging Home Services): Document it.
Change-Id: I1e278e7d8ed04efcb1a2ce9e12e69cb6a31a9fa4
---
doc/guix.texi | 28 ++++++++++++++++++++++++++++
gnu/home/services/messaging.scm | 21 +++++++++++++++++++--
2 files changed, 47 insertions(+), 2 deletions(-)
@@ -49771,6 +49771,34 @@ Messaging Home Services
@end table
@end deftp
+@cindex irc-bot
+@cindex snuik
+The @uref{https://gitlab.com/janneke/snuik, Snuik IRC bot} can be run as
+a daemon to aid talking to users that are currently offline. With the
+@code{(gnu home services messaging)} service, you can configure Snuik to
+run upon login.
+
+@defvar home-snuik-service-type
+This is the type of the Snuik home service, whose value is a
+@code{home-snuik-configuration} object.
+@end defvar
+
+You may specify a custom configuration by providing a
+@code{snuik-configuration} record, exactly like for
+@code{snuik-service-type} and wrapping it in @code{for-home}. Here is
+an example of a service and its configuration that you could add to the
+@code{services} field of your @code{home-environment}:
+
+@lisp
+(service home-snuik-service-type
+ (for-home
+ (snuik-configuration
+ (server "irc.oftc.net")
+ (nick "sneek")
+ (password "snuik is sneeky")
+ (channels '("#reproducible-builds"))))
+@end lisp
+
@node Media Home Services
@subsection Media Home Services
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2023 Janneke Nieuwenhuizen <janneke@gnu.org>
+;;; Copyright © 2023, 2025 Janneke Nieuwenhuizen <janneke@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -20,12 +20,17 @@ (define-module (gnu home services messaging)
#:use-module (srfi srfi-26)
#:use-module (gnu home services)
#:use-module (gnu home services shepherd)
+ #:use-module (gnu packages irc)
#:use-module (gnu packages messaging)
+ #:use-module (gnu services)
#:use-module (gnu services configuration)
#:use-module (gnu services shepherd)
+ #:use-module (gnu services messaging)
+ #:use-module ((gnu system shadow) #:select (account-service-type))
#:use-module (guix records)
#:use-module (guix gexp)
- #:export (home-znc-configuration
+ #:export (home-snuik-service-type
+ home-znc-configuration
home-znc-service-type))
;;;
@@ -64,3 +69,15 @@ (define home-znc-service-type
(description
"Install and configure @command{znc}, an @acronym{IRC, Internet Relay
Chat} bouncer, as a Shepherd service.")))
+
+
+;;;
+;;; Snuik.
+;;;
+(define home-snuik-service-type
+ (service-type
+ (inherit (system->home-service-type
+ (remove-service-extensions snuik-service-type
+ (list account-service-type
+ activation-service-type))))
+ (default-value (for-home (snuik-configuration)))))