services: gpm: Provide a default value and document 'gpm-service-type'.

* gnu/services/base.scm (%default-gpm-options): New variable.
(<gpm-configuration>)[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'.
This commit is contained in:
Ludovic Courtès 2018-04-30 14:07:34 +02:00
parent 6ac8b7359a
commit 5986e94118
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
2 changed files with 35 additions and 12 deletions

View File

@ -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.
@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.
This service is not part of @var{%base-services}.
@end deffn
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

View File

@ -1962,10 +1962,16 @@ extra rules from the packages listed in @var{rules}."
"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>
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 @@ extra rules from the packages listed in @var{rules}."
(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}