[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’.