From 3bd8d238aba718bf949691d0e37fa310e2cfc12a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AE=8B=E6=96=87=E6=AD=A6?= Date: Mon, 22 Apr 2024 20:42:13 +0800 Subject: [PATCH] services: Add gvfs-service-type. * gnu/services/desktop.scm (gvfs-service-type): New variable. (gvfs-configuration, make-gvfs-configuration, gvfs-configuration?, gvfs-package): New procedures. (): New record. * doc/guix.texi (Desktop Services): Document it. Change-Id: I584819500e2ce7d2b14e57dac238a96e9888e75e --- doc/guix.texi | 19 +++++++++++++++++++ gnu/services/desktop.scm | 28 ++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) diff --git a/doc/guix.texi b/doc/guix.texi index 3ee9f54773..5d3c9225b4 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -24941,6 +24941,25 @@ Package object for UDisks. @end table @end deftp +@defvar gvfs-service-type +Type for the service that provides virtual file systems for GIO +applicaitons, which enables support for @code{trash:///}, @code{ftp://}, +@code{sftp://} and many other location schemas in file managers like +Nautilus (GNOME Files) and Thunar. + +The value for this service is a @code{} object. +@end defvar + +@deftp {Data Type} gvfs-configuration +Data type representing the configuration for @code{gvfs-service-type}. + +@table @asis +@item @code{gvfs} (default: @code{gvfs}) (type: file-like) +Package object for GVfs. + +@end table +@end deftp + @defvar colord-service-type This is the type of the service that runs @command{colord}, a system service with a D-Bus diff --git a/gnu/services/desktop.scm b/gnu/services/desktop.scm index 02a7802d58..d0b9728d4a 100644 --- a/gnu/services/desktop.scm +++ b/gnu/services/desktop.scm @@ -109,6 +109,10 @@ udisks-service ; deprecated udisks-service-type + gvfs-configuration + gvfs-configuration? + gvfs-service-type + colord-service-type geoclue-application @@ -989,6 +993,30 @@ include the @command{udisksctl} command, part of UDisks, and GNOME Disks." (service udisks-service-type (udisks-configuration (udisks udisks)))) + + +;;; +;;; GVfs virtual file system. +;;; + +(define-record-type* + gvfs-configuration make-gvfs-configuration + gvfs-configuration? + (gvfs gvfs-package (default gvfs))) + +(define gvfs-service-type + (service-type (name 'gvfs) + (extensions + (list + (service-extension profile-service-type + (compose list gvfs-package)) + ;; Required for gvfs-udisks2-volume-monitor. + (service-extension udisks-service-type (const #t)))) + (description + "Make GVfs virtual file systems (Trash, SFTP, SMB, HTTP, +and many other) available for GIO applications.") + (default-value (gvfs-configuration)))) + ;;; ;;; Elogind login and seat management service.