1
0
Fork 0
mirror of https://github.com/nix-community/home-manager.git synced 2025-11-30 22:21:02 +01:00
home-manager/modules/services/imapnotify/accounts.nix
Austin Horstman 4fca600cb1 treewide: implement auto importing for modules
Reduce maintenance burden and increase efficiency by automatically
importing modules following a specific convention.

Co-authored-by: awwpotato <awwpotato@voidq.com>
Signed-off-by: Austin Horstman <khaneliman12@gmail.com>
2025-06-22 23:58:37 -05:00

52 lines
1.3 KiB
Nix

{ pkgs, lib, ... }:
let
inherit (lib) mkOption types;
in
{
options.imapnotify = {
enable = lib.mkEnableOption "imapnotify";
onNotify = mkOption {
type = with types; either str (attrsOf str);
default = "";
example = "\${pkgs.isync}/bin/mbsync test-%s";
description = "Shell commands to run on any event.";
};
onNotifyPost = mkOption {
type = with types; either str (attrsOf str);
default = "";
example = {
mail = "\${pkgs.notmuch}/bin/notmuch new && \${pkgs.libnotify}/bin/notify-send 'New mail arrived'";
};
description = "Shell commands to run after onNotify event.";
};
boxes = mkOption {
type = types.listOf types.str;
default = [ ];
example = [
"Inbox"
"[Gmail]/MyLabel"
];
description = "IMAP folders to watch.";
};
extraArgs = mkOption {
type = types.listOf types.str;
default = [ ];
example = [ "-wait 1" ];
description = "Extra arguments to pass to goimapnotify.";
};
extraConfig = mkOption {
type =
let
jsonFormat = pkgs.formats.json { };
in
jsonFormat.type;
default = { };
description = "Additional configuration to add for this account.";
};
};
}