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.nix58
1 files changed, 58 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..89ae28f9c8e
--- /dev/null
+++ b/home-manager/modules/programs/alot-accounts.nix
@@ -0,0 +1,58 @@
+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);
+ };
+}