{ config, lib, pkgs, ... }: { options.zaphyra.programs.gnome-online-accounts.enable = lib.mkEnableOption "Enable gnome-online-accounts and evolution-data-server"; config = lib.mkIf config.zaphyra.programs.gnome-online-accounts.enable ( let gnome-online-accounts = pkgs.gnome-online-accounts.overrideAttrs (prevAttrs: { mesonFlags = prevAttrs.mesonFlags ++ [ "-Dexchange=false" "-Dgoogle=false" "-Dkerberos=false" "-Downcloud=false" "-Dms_graph=false" ]; }); in { home.persistence."/nix/persist/home/${config.home.username}".directories = [ "evolution-data-server/.local/share/evolution" "gnome-online-accounts/.config/goa-1.0" ]; home.packages = with pkgs; [ gnome-online-accounts-gtk (evolution-data-server-gtk4.override { withGtk4 = true; enableOAuth2 = false; }) ]; dbus.packages = [ gnome-online-accounts ]; systemd.user.services.gnome-online-accounts = { Unit.Description = "Gnome Online Accounts"; Service = { Type = "dbus"; ExecStart = "${gnome-online-accounts}/libexec/goa-daemon"; BusName = "org.gnome.OnlineAccounts"; }; }; } ); }