guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] services: Add kmscon service.


From: Ludovic Courtès
Subject: Re: [PATCH] services: Add kmscon service.
Date: Thu, 08 Sep 2016 23:34:30 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux)

Hello!

David Craven <address@hidden> skribis:

> * gnu/services/base.scm (<kmscon-configuration>,
>   kmscon-shepherd-service, kmscon-service-type, kmscon-service): New
>   variables.

I didn’t know kmscon, that looks pretty interesting.

> +(define-record-type* <kmscon-configuration>
> +  kmscon-configuration   make-kmscon-configuration
> +  kmscon-configuration?
> +  (kmscon                kmscon-configuration-kmscon
> +                         (default kmscon))
> +  (vt                    kmscon-configuration-vt)

s/vt/virtual-terminal/

> +  (login-program         kmscon-configuration-login-program
> +                         (default #~(string-append #$shadow "/bin/login")))
> +  (login-arguments       kmscon-configuration-login-arguments
> +                         (default '("-p")))
> +  (hwaccel?              kmscon-configuration-hwaccel?

“hardware-acceleration?”

> +(define (kmscon-shepherd-service config)
> +  "Return a <shepherd-service> for kmscon with CONFIG."
> +  (let ((kmscon (kmscon-configuration-kmscon config))
> +        (vt (kmscon-configuration-vt config))
> +        (login-program (kmscon-configuration-login-program config))
> +        (login-arguments (kmscon-configuration-login-arguments config))
> +        (hwaccel? (kmscon-configuration-hwaccel? config)))
> +
> +    (define kmscon-command
> +      #~(list
> +         (string-append #$kmscon "/bin/kmscon") "--login"
> +         "--vt" #$vt
> +         #$@(if hwaccel? '("--hwaccel") '())
> +         "--" #$login-program address@hidden))
> +
> +  (list (shepherd-service
> +    (documentation "kmscon virtual terminal")
> +    (requirement '(user-processes udev))
> +    (provision (list (symbol-append 'term- (string->symbol vt))))
> +    (start #~(make-forkexec-constructor #$kmscon-command))
> +    (stop #~(make-kill-destructor))))))
> +
> +(define kmscon-service-type
> +  (service-type (name 'kmscon)
> +    (extensions
> +      (list (service-extension shepherd-root-service-type
> +                               kmscon-shepherd-service)))))

This can be shortened using ‘shepherd-service-type’.

> +(define* (kmscon-service config)
> +  "Run the @command{kmscon} daemon from @var{kmscon} to start a virtual
> +terminal."
> +  (service kmscon-service-type config))

I would not bother with this procedure and instead expose
‘kmscon-service-type’ and ‘kmscon-configuration’.

Could you augment guix.texi for these two things, with a bit of context
and an @uref to <https://www.freedesktop.org/wiki/Software/kmscon/>?

Thank you!

Ludo’.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]