Manage your vCard contacts inside Emacs with Helm and khard (and vdirsyncer).
This README uses Org mode.
- Search contacts (with Helm)
- Insert arbitrary contact fields into buffer
- Add, remove, merge contacts (with khard)
- Modify contacts (with khard)
- Sync contacts with remote server (with vdirsyncer)
- Copy & move contacts between address books (with khard)
- Export, import or visit contact file (VCF)
- Integration into mu4e
Helm-khard depends on khard for accessing and modifying locally stored contacts (each contact as single VCF), and uses vdirsyncer to synchronize these contacts with a remote CardDAV server.
- khard >= v0.17
- vdirsyncer >= 0.19
Note that khard and vdirsyncer must also be properly configured. Please refer to their respective documentation on how to achieve this. An example configuration can be found in the tests directory of helm-khard.
Not yet available.
Download helm-khard.el
to your .emacs.d
folder and add the following code to your init file:
(use-package helm-khard
:load-path "relative/path/to/helm-khard/")
Optionally, you can also download the tests directory.
M-x helm-khard
If you want to play around with helm-khard, you can evaluate tests/helm-khard-test.el
and run M-x helm-khard-test
.
Certain helm-khard variables are customizable, see (customize-group "helm-khard")
.
The following are probably the most relevant ones:
helm-khard-vdirsyncer-command
: Specify vdirsyncer command as string.helm-khard-sync-after-editing
: If non-nil, synchronize local and remote contacts after editing a contact.helm-khard-sync-during-initialization
: If non-nil, synchronize local and remote contacts during initionalization.helm-khard-insert-with-organisation
: If non-nil, add organisation when inserting a contact.helm-khard-candidate-format-plist
: Specifies the sequence and column width of formatted candidates. When the width is nil, the corresponding field is not trimmed of filled.
When mu4e is loaded, one can add the helm-khard contacts to the mu4e contacts for autocompletion by advising mu4e--update-contacts
like this:
(advice-add 'mu4e--update-contacts :after #'helm-khard--inject-contacts-into-mu4e)
As for my own needs, helm-khard is feature-complete.