aboutsummaryrefslogtreecommitdiff
path: root/home-manager/modules/programs/alot-accounts.nix
diff options
context:
space:
mode:
Diffstat (limited to 'home-manager/modules/programs/alot-accounts.nix')
-rw-r--r--home-manager/modules/programs/alot-accounts.nix61
1 files changed, 61 insertions, 0 deletions
diff --git a/home-manager/modules/programs/alot-accounts.nix b/home-manager/modules/programs/alot-accounts.nix
new file mode 100644
index 00000000000..8f3ffdfb31e
--- /dev/null
+++ b/home-manager/modules/programs/alot-accounts.nix
@@ -0,0 +1,61 @@
+pkgs:
+{ config, lib, ... }:
+
+with lib;
+
+{
+ options.alot = {
+ sendMailCommand = mkOption {
+ type = types.nullOr types.str;
+ description = ''
+ Command to send a mail. If msmtp is enabled for the account,
+ then this is set to
+ <command>msmtpq --read-envelope-from --read-recipients</command>.
+ '';
+ };
+
+ contactCompletion = mkOption {
+ type = types.attrsOf types.str;
+ default = {
+ type = "shellcommand";
+ command = "'${pkgs.notmuch}/bin/notmuch address --format=json --output=recipients date:6M..'";
+ regexp =
+ "'\\[?{"
+ + ''"name": "(?P<name>.*)", ''
+ + ''"address": "(?P<email>.+)", ''
+ + ''"name-addr": ".*"''
+ + "}[,\\]]?'";
+ shellcommand_external_filtering = "False";
+ };
+ example = literalExample ''
+ {
+ type = "shellcommand";
+ command = "abook --mutt-query";
+ regexp = "'^(?P<email>[^@]+@[^\t]+)\t+(?P<name>[^\t]+)'";
+ ignorecase = "True";
+ }
+ '';
+ description = ''
+ Contact completion configuration as expected per alot.
+ See <link xlink:href="http://alot.readthedocs.io/en/latest/configuration/contacts_completion.html">alot's wiki</link> for
+ explanation about possible values.
+ '';
+ };
+
+ extraConfig = mkOption {
+ type = types.lines;
+ default = "";
+ description = ''
+ Extra settings to add to this Alot account configuration.
+ '';
+ };
+ };
+
+ config = mkIf config.notmuch.enable {
+ alot.sendMailCommand = mkOptionDefault (
+ if config.msmtp.enable
+ then "msmtpq --read-envelope-from --read-recipients"
+ else null
+ );
+ };
+}