[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Defining custom services in /etc/config.scm
From: |
Sergiu Ivanov |
Subject: |
Defining custom services in /etc/config.scm |
Date: |
Sun, 24 Jan 2021 20:09:07 +0100 |
User-agent: |
mu4e 1.4.13; emacs 27.1 |
Hello,
I'm trying to start redshift [0] as a shepherd service, and this is how
I defined the redshift service in my /etc/config.scm:
(define evry-geolocation "48.63681:2.42777")
(define redshift-service
(shepherd-service
(provision '(redshift))
(requirement '(xorg-server))
(documentation "Start Redshift as a service")
(start #~(make-forkexec-constructor
`("redshift" "-l" ,evry-geolocation)))
(stop #~(make-kill-destructor))))
However, I can't find a way to add this to the services field of the
operating-system declaration.
When I try:
(services (append
(list redshift-service
(service xfce-desktop-service-type)
(set-xorg-configuration
(xorg-configuration (keyboard-layout keyboard-layout))))
%desktop-services))
I get the message "Wrong type argument #<<shepherd-service> ...".
I understand that I should somehow construct a <service> (?) from my
<shepherd-service>, but I don't see a way to do it.
I've also seen a couple mailing list discussions [1,2] and a blog post
[3] about doing what I want in "pure shepherd", i.e. independently of
Guix, but these solutions seem to be doing more than what I need.
How can I add a custom shepherd service to the operating-system
definition in /etc/config.scm?
-
Sergiu
[0] http://jonls.dk/redshift/
[1] https://lists.gnu.org/archive/html/guix-devel/2018-02/msg00047.html
[2] https://www.mail-archive.com/guix-devel@gnu.org/msg46278.html
[3] https://guix.gnu.org/blog/2020/gnu-shepherd-user-services/
- Defining custom services in /etc/config.scm,
Sergiu Ivanov <=