Hello! David Craven <da...@craven.ch> 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 #$@login-arguments)) > + > + (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’.