summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/guix.texi34
-rw-r--r--gnu/services/base.scm15
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 @@ 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}