Browse Source

alot: support contact completion

Make choice of contact completion easier.
master
Matthieu Coudron 9 months ago
parent
commit
81dae2f88e
No account linked to committer's email address
3 changed files with 33 additions and 2 deletions
  1. 2
    2
      modules/accounts/email.nix
  2. 29
    0
      modules/programs/alot-accounts.nix
  3. 2
    0
      modules/programs/alot.nix

+ 2
- 2
modules/accounts/email.nix View File

@@ -1,4 +1,4 @@
{ config, lib, ... }:
{ config, lib, pkgs, ... }:

with lib;

@@ -379,7 +379,7 @@ in
accounts = mkOption {
type = types.attrsOf (types.submodule [
mailAccountOpts
(import ../programs/alot-accounts.nix)
(import ../programs/alot-accounts.nix pkgs)
(import ../programs/astroid-accounts.nix)
(import ../programs/mbsync-accounts.nix)
(import ../programs/msmtp-accounts.nix)

+ 29
- 0
modules/programs/alot-accounts.nix View File

@@ -1,3 +1,4 @@
pkgs:
{ config, lib, ... }:

with lib;
@@ -13,6 +14,34 @@ with lib;
'';
};

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 = "";

+ 2
- 0
modules/programs/alot.nix View File

@@ -33,6 +33,8 @@ let
boolStr (signature.showSignature == "attach");
}
)
++ [ "[[[abook]]]" ]
++ mapAttrsToList (n: v: n + "=" + v) alot.contactCompletion
)
+ "\n"
+ alot.extraConfig;

Loading…
Cancel
Save