diff options
Diffstat (limited to 'modules/workstation/mail')
-rw-r--r-- | modules/workstation/mail/default.nix | 7 | ||||
-rw-r--r-- | modules/workstation/mail/isync/default.nix | 36 | ||||
-rw-r--r-- | modules/workstation/mail/mutt/default.nix | 7 |
3 files changed, 50 insertions, 0 deletions
diff --git a/modules/workstation/mail/default.nix b/modules/workstation/mail/default.nix new file mode 100644 index 000000000000..9b14f2981ec8 --- /dev/null +++ b/modules/workstation/mail/default.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: + +{ + imports = [ ./mutt ]; + + environment.systemPackages = with pkgs.pkgsConfigured; [ isync ]; +} diff --git a/modules/workstation/mail/isync/default.nix b/modules/workstation/mail/isync/default.nix new file mode 100644 index 000000000000..66343a0c3625 --- /dev/null +++ b/modules/workstation/mail/isync/default.nix @@ -0,0 +1,36 @@ +{ pkgs, options, ... }: + +let + inherit (pkgs.pkgsConfigured) isync; + +in { + config = + if options.environment ? "darwinConfig" then + { + launchd.user.agents.isync = { + serviceConfig.ProgramArguments = [ "${isync}/bin/mbsync" "Periodic" ]; + serviceConfig.StartInterval = 300; + serviceConfig.RunAtLoad = true; + }; + } + else + { + systemd.user.services.isync = { + serviceConfig = { + Type = "oneshot"; + ExecStart = '' + ${isync}/bin/mbsync Periodic + ''; + }; + }; + + systemd.user.timers.isync = { + timerConfig = { + Unit = "isync.service"; + OnCalendar = "*:0/5"; + Persistent = "true"; + }; + wantedBy = [ "default.target" ]; + }; + }; +} diff --git a/modules/workstation/mail/mutt/default.nix b/modules/workstation/mail/mutt/default.nix new file mode 100644 index 000000000000..1aa8d2aa29d3 --- /dev/null +++ b/modules/workstation/mail/mutt/default.nix @@ -0,0 +1,7 @@ +{ pkgs, ... }: + +{ + imports = [ ../../../shell ]; + + environment.systemPackages = with pkgs.pkgsConfigured; [ neomutt ]; +} |