From 5986e94118b114319feadbd2431d6efbf870a5e5 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Mon, 30 Apr 2018 14:07:34 +0200 Subject: services: gpm: Provide a default value and document 'gpm-service-type'. * gnu/services/base.scm (%default-gpm-options): New variable. ()[gpm, options]: Add default values. (gpm-service-type)[default-value]: New field. (gpm-service): Use %DEFAULT-GPM-OPTIONS and mark as deprecated. * doc/guix.texi (Base Services): Document 'gpm-service-type' and 'gpm-configuration'. Remove 'gpm-service'. --- doc/guix.texi | 34 +++++++++++++++++++++++++--------- gnu/services/base.scm | 15 +++++++++++---- 2 files changed, 36 insertions(+), 13 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 58c3688c03..87892fc892 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -10383,15 +10383,31 @@ See @code{man loadkeys} for details. @cindex mouse @cindex gpm -@deffn {Scheme Procedure} gpm-service [#:gpm @var{gpm}] @ - [#:options] -Run @var{gpm}, the general-purpose mouse daemon, with the given -command-line @var{options}. GPM allows users to use the mouse in the console, -notably to select, copy, and paste text. The default value of @var{options} -uses the @code{ps2} protocol, which works for both USB and PS/2 mice. - -This service is not part of @var{%base-services}. -@end deffn +@defvr {Scheme Variable} gpm-service-type +This is the type of the service that runs GPM, the @dfn{general-purpose +mouse daemon}, which provides mouse support to the Linux console. GPM +allows users to use the mouse in the console, notably to select, copy, +and paste text. + +The value for services of this type must be a @code{gpm-configuration} +(see below). This service is not part of @var{%base-services}. +@end defvr + +@deftp {Data Type} gpm-configuration +Data type representing the configuration of GPM. + +@table @asis +@item @code{options} (default: @code{%default-gpm-options}) +Command-line options passed to @command{gpm}. The default set of +options instruct @command{gpm} to listen to mouse events on +@file{/dev/input/mice}. @xref{Command Line,,, gpm, gpm manual}, for +more information. + +@item @code{gpm} (default: @code{gpm}) +The GPM package to use. + +@end table +@end deftp @anchor{guix-publish-service-type} @deffn {Scheme Variable} guix-publish-service-type diff --git a/gnu/services/base.scm b/gnu/services/base.scm index 694aab882e..eb82b2ddcf 100644 --- a/gnu/services/base.scm +++ b/gnu/services/base.scm @@ -1962,10 +1962,16 @@ (define (swap-service device) "Return a service that uses @var{device} as a swap device." (service swap-service-type device)) +(define %default-gpm-options + ;; Default options for GPM. + '("-m" "/dev/input/mice" "-t" "ps2")) + (define-record-type* gpm-configuration make-gpm-configuration gpm-configuration? - (gpm gpm-configuration-gpm) ;package - (options gpm-configuration-options)) ;list of strings + (gpm gpm-configuration-gpm ;package + (default gpm)) + (options gpm-configuration-options ;list of strings + (default %default-gpm-options))) (define gpm-shepherd-service (match-lambda @@ -2000,14 +2006,15 @@ (define gpm-service-type (extensions (list (service-extension shepherd-root-service-type gpm-shepherd-service))) + (default-value (gpm-configuration)) (description "Run GPM, the general-purpose mouse daemon, with the given command-line options. GPM allows users to use the mouse in the console, notably to select, copy, and paste text. The default options use the @code{ps2} protocol, which works for both USB and PS/2 mice."))) -(define* (gpm-service #:key (gpm gpm) - (options '("-m" "/dev/input/mice" "-t" "ps2"))) +(define* (gpm-service #:key (gpm gpm) ;deprecated + (options %default-gpm-options)) "Run @var{gpm}, the general-purpose mouse daemon, with the given command-line @var{options}. GPM allows users to use the mouse in the console, notably to select, copy, and paste text. The default value of @var{options} -- cgit v1.2.3