summaryrefslogtreecommitdiffstats
path: root/nixos/modules/services/desktops/gnome3/evolution-data-server.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/modules/services/desktops/gnome3/evolution-data-server.nix')
-rw-r--r--nixos/modules/services/desktops/gnome3/evolution-data-server.nix54
1 files changed, 34 insertions, 20 deletions
diff --git a/nixos/modules/services/desktops/gnome3/evolution-data-server.nix b/nixos/modules/services/desktops/gnome3/evolution-data-server.nix
index bd62d16f61ce..749f12b86bc8 100644
--- a/nixos/modules/services/desktops/gnome3/evolution-data-server.nix
+++ b/nixos/modules/services/desktops/gnome3/evolution-data-server.nix
@@ -15,31 +15,45 @@ with lib;
options = {
services.gnome3.evolution-data-server = {
-
- enable = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Whether to enable Evolution Data Server, a collection of services for
- storing addressbooks and calendars.
- '';
+ enable = mkEnableOption "Evolution Data Server, a collection of services for storing addressbooks and calendars.";
+ plugins = mkOption {
+ type = types.listOf types.package;
+ default = [ ];
+ description = "Plugins for Evolution Data Server.";
};
-
};
+ programs.evolution = {
+ enable = mkEnableOption "Evolution, a Personal information management application that provides integrated mail, calendaring and address book functionality.";
+ plugins = mkOption {
+ type = types.listOf types.package;
+ default = [ ];
+ example = literalExample "[ pkgs.evolution-ews ]";
+ description = "Plugins for Evolution.";
+ };
+ };
};
-
###### implementation
- config = mkIf config.services.gnome3.evolution-data-server.enable {
-
- environment.systemPackages = [ pkgs.gnome3.evolution-data-server ];
-
- services.dbus.packages = [ pkgs.gnome3.evolution-data-server ];
-
- systemd.packages = [ pkgs.gnome3.evolution-data-server ];
-
- };
-
+ config =
+ let
+ bundle = pkgs.evolutionWithPlugins.override { inherit (config.services.gnome3.evolution-data-server) plugins; };
+ in
+ mkMerge [
+ (mkIf config.services.gnome3.evolution-data-server.enable {
+ environment.systemPackages = [ bundle ];
+
+ services.dbus.packages = [ bundle ];
+
+ systemd.packages = [ bundle ];
+ })
+ (mkIf config.programs.evolution.enable {
+ services.gnome3.evolution-data-server = {
+ enable = true;
+ plugins = [ pkgs.evolution ] ++ config.programs.evolution.plugins;
+ };
+ services.gnome3.gnome-keyring.enable = true;
+ })
+ ];
}