3.3. Contacts CompletionΒΆ

For each account you can define an address book by providing a subsection named abook. Crucially, this section needs an option type that specifies the type of the address book. The only types supported at the moment are “shellcommand” and “abook”. Both respect the ignorecase option which defaults to True and results in case insensitive lookups.

shellcommand

Address books of this type use a shell command in combination with a regular expression to look up contacts.

The value of command will be called with the search prefix as only argument for lookups. Its output is searched for email-name pairs using the regular expression given as regexp, which must include named groups “email” and “name” to match the email address and realname parts respectively. See below for an example that uses abook

[accounts]
  [[youraccount]]
      # ...
      [[[abook]]]
          type = shellcommand
          command = abook --mutt-query
          regexp = '^(?P<email>[^@]+@[^\t]+)\t+(?P<name>[^\t]+)'
          ignorecase = True

See here for alternative lookup commands. The few others I have tested so far are:

goobook

for cached google contacts lookups. Works with the above default regexp

command = goobook query
regexp = '^(?P<email>[^@]+@[^\t]+)\t+(?P<name>[^\t]+)'
nottoomuch-addresses

completes contacts found in the notmuch index:

command = nottoomuch-addresses.sh
regexp = \"(?P<name>.+)\"\s*<(?P<email>.*.+?@.+?)>

Don’t hesitate to send me your custom regexp values to list them here.

abook

Address books of this type directly parse abooks contact files. You may specify a path using the “abook_contacts_file” option, which defaults to ~/.abook/addressbook. To use the default path, simply do this:

[accounts]
[[youraccount]]
    # ...
    [[[abook]]]
        type = abook