{ povSelf, config, pkgs, lib, ... }: let inherit (lib) types; cfg = lib.getAttrFromPath povSelf config; in { options = { enable = { type = types.bool; default = false; }; backends = { afc = { type = types.bool; default = false; }; afp = { type = types.bool; default = false; }; mtp = { type = types.bool; default = false; }; gphoto2 = { type = types.bool; default = false; }; smb = { type = types.bool; default = false; }; }; }; config = lib.mkIf cfg.enable { services.gvfs = { enable = true; package = (pkgs.gvfs.overrideAttrs (old: { mesonFlags = (old.mesonFlags or [ ]) ++ [ "-Dafp=${lib.boolToString cfg.backends.afp}" "-Dafc=${lib.boolToString cfg.backends.afc}" "-Dmtp=${lib.boolToString cfg.backends.mtp}" "-Dgphoto2=${lib.boolToString cfg.backends.gphoto2}" ]; })).override { samba = null; }; }; }; }