aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-01-21 14:26:41 +0100
committerLudovic Courtès <ludo@gnu.org>2020-01-21 15:01:46 +0100
commitb2f948be9f815582a49bd80a9594a881d7d1a56e (patch)
treeecdc41ca5567338d4511fbb1a81141dc3b7d94ba
parent5dc6d5ce9997e4caf66d154f91c3695e02e5386f (diff)
downloadpatches-b2f948be9f815582a49bd80a9594a881d7d1a56e.tar
patches-b2f948be9f815582a49bd80a9594a881d7d1a56e.tar.gz
services: sane: Create the "scanner" account.
* gnu/services/desktop.scm (%sane-accounts, sane-service-type): New variables. (%desktop-services): Use SANE-SERVICE-TYPE instead of 'simple-service'. * doc/guix.texi (Desktop Services): Document 'sane-service-type'.
-rw-r--r--doc/guix.texi7
-rw-r--r--gnu/services/desktop.scm28
2 files changed, 33 insertions, 2 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index 2b5bfc6cb7..d674b9484f 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -15845,6 +15845,13 @@ this application is allowed location info access. An empty users list
means that all users are allowed.
@end deffn
+@cindex scanner access
+@deffn {Scheme Procedure} sane-service-type
+This service provides access to scanners @i{via}
+@uref{http://www.sane-project.org, SANE} by installing the necessary udev
+rules.
+@end deffn
+
@defvr {Scheme Variable} %standard-geoclue-applications
The standard list of well-known GeoClue application configurations,
granting authority to the GNOME date-and-time utility to ask for the
diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm
index dec1c3fa0f..9dcdf38be1 100644
--- a/gnu/services/desktop.scm
+++ b/gnu/services/desktop.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
;;; Copyright © 2015 Mark H Weaver <mhw@netris.org>
;;; Copyright © 2016 Sou Bunnbu <iyzsong@gmail.com>
@@ -110,6 +110,7 @@
accountsservice-service
cups-pk-helper-service-type
+ sane-service-type
gnome-desktop-configuration
gnome-desktop-configuration?
@@ -838,6 +839,29 @@ accountsservice web site} for more information."
;;;
+;;; Scanner access via SANE.
+;;;
+
+(define %sane-accounts
+ ;; The '60-libsane.rules' udev rules refers to the "scanner" group.
+ (list (user-group (name "scanner") (system? #t))))
+
+(define sane-service-type
+ (service-type
+ (name 'sane)
+ (description
+ "This service provides access to scanners @i{via}
+@uref{http://www.sane-project.org, SANE} by installing the necessary udev
+rules.")
+ (default-value sane-backends-minimal)
+ (extensions
+ (list (service-extension udev-service-type list)
+ (service-extension account-service-type
+ (const %sane-accounts))))))
+
+
+
+;;;
;;; GNOME desktop service.
;;;
@@ -1156,7 +1180,7 @@ or setting its password with passwd.")))
;; them.
(simple-service 'mtp udev-service-type (list libmtp))
;; Add udev rules for scanners.
- (simple-service 'sane udev-service-type (list sane-backends-minimal))
+ (service sane-service-type)
;; Add polkit rules, so that non-root users in the wheel group can
;; perform administrative tasks (similar to "sudo").
polkit-wheel-service