GNOME VCARD Integration
Aim of this project is to make a vCard a first-class file on the GNOME desktop.
A .vcf is a small text file that carries a contact: a name,
telephone numbers, email addresses, a postal address, a photograph, and notes.
The format has three generations in the wild, and the older ones use
quoted-printable values and bare type parameters, so a stock desktop has no
useful way to show one.
This project reads the card, reports what it contains, draws it as a contact card, and registers itself as the application that opens it. Everything the desktop does is also available on the command line, and every change the tool makes to the desktop can be reversed.
What it does
vcard-inspectreports the cards, the contact facts, the encoded properties, and any warning.vcard-renderdraws a contact as one standalone SVG card, with the embedded photo and safe links only.vcard-integrate handler installmakestext/vcardandtext/x-vcardopen with this project, installs the file-type icon, and records what opened them before.vcard-viewershows the card, the exactvcard-inspectcommand and output, and the project's name, version, and repository in three tabs.vcard-integrate handler uninstallputs the previous handlers back and removes what the install wrote.
Status
Phases 1 through 4 are complete: the reader, the renderer, the MIME handler, the
command-line tools, and the GTK4 viewer exist, the test suite passes, these
pages are published, and the latest release, v0.1.1, is on GitHub.
The source is at github.com/pbannister/gnome-vcard-integration, and the latest release is at releases/latest.
The viewer opens the first contact in a multi-card file, and the oldest legacy
charset label is not decoded yet; both limitations are recorded in
TODO.md.
A note on examples
A real vCard belongs to a person: it carries a name, telephone numbers, an address, and sometimes a photograph. The fixtures the tests use are synthetic and structurally real, and every value in them is invented.