1# GVfs
2
3{
4 config,
5 lib,
6 pkgs,
7 ...
8}:
9
10let
11
12 cfg = config.services.gvfs;
13
14in
15
16{
17
18 meta = {
19 maintainers = lib.teams.gnome.members;
20 };
21
22 ###### interface
23
24 options = {
25
26 services.gvfs = {
27
28 enable = lib.mkEnableOption "GVfs, a userspace virtual filesystem";
29
30 # gvfs can be built with multiple configurations
31 package = lib.mkPackageOption pkgs [ "gnome" "gvfs" ] { };
32
33 };
34
35 };
36
37 ###### implementation
38
39 config = lib.mkIf cfg.enable {
40
41 environment.systemPackages = [ cfg.package ];
42
43 services.dbus.packages = [ cfg.package ];
44
45 systemd.packages = [ cfg.package ];
46
47 services.udev.packages = [ pkgs.libmtp.out ];
48
49 services.udisks2.enable = true;
50
51 # Needed for unwrapped applications
52 environment.sessionVariables.GIO_EXTRA_MODULES = [ "${cfg.package}/lib/gio/modules" ];
53
54 };
55
56}