[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Defining custom services in /etc/config.scm
From: |
Ekaitz Zarraga |
Subject: |
Re: Defining custom services in /etc/config.scm |
Date: |
Sun, 24 Jan 2021 19:19:45 +0000 |
‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Sunday, January 24, 2021 8:09 PM, Sergiu Ivanov <sivanov@colimite.fr> wrote:
> 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/
Hi Sergiu,
I recently made my redshift configuration using shepherd user
services, which is what people in IRC recommended me.
You can find it here:
https://github.com/ekaitz-zarraga/dotfiles/tree/guix/shepherd/shepherd
Also, it forces me to run the shepherd as a user using my i3 config.
I also wanted to configure it in my config.scm file but people
convinced me not to do so.
I'm not sure why your case shouldn't work though.
Best,
Ekaitz