- Emacs Lisp 99%
- Makefile 1%
| tests | Tests: Show Khard version | |
| helm-khard.drawio | Add diagram | |
| helm-khard.el | Add function plist-get-keys | |
| helm-khard.png | Add diagram | |
| README.org | Update README.org | |
helm-khard: A Helm interface for khard
- Features
- Installation
- Usage
- Configuration of helm-khard
- Ideas & plans
- Alternative and related Emacs packages
Manage your vCard contacts inside Emacs with Helm and khard (and vdirsyncer).
This README uses Org mode.
Features
- 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
Installation
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.
/timmli/helm-khard/media/branch/main/helm-khard.png
Requirements outside Emacs
- 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.
Installation with Melpa
Not yet available.
Installation from Github
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.
Usage
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.
Configuration of helm-khard
Helm-khard variables
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.
Integration with mu4e address completion
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)
Ideas & plans
As for my own needs, helm-khard is feature-complete.