Mutt Kontakte und Adressen aus Nextcloud nutzen

Lange ist es her seitdem ich die Anleitung Mutt Kontakte aus Owncloud nutzen schrieb. Das Programm pyCardDAV​ wird nicht mehr weiter entwickelt und auch Owncloud wurde durch Nextcloud ersetzt. Zeit ein Update vorzunehmen.

Zeitung in einem Türbriefkasten
Bild Pixabay von DieElchin unter CC0

Installiert werden müssen khard, und vdirsyncer. Die beiden Pythonprogramme/Pythonscripte/Programme sind in den Repositories von Fedora und Debian enthalten. Sie brauchen nicht extra über pip installiert werden

vdirsyncer ist für das synchronisieren der Dateien zuständig, khard ist ein cardDAVclient für die Kommandozeile. Er dient für das Durchsuchen der durch vdirsyncer lokal gespeicherten Dateien. Auch ist es mit Ihm möglich neue Adressen zu speichern.

Vorbereitung

mkdir -p ~/.vdirsyncer/status
mkdir -p ~/.config/khard/contacts/

Einrichtung VDirsync

Die Konfigurationsdatei ~/.vdirsyncer/conf

[general]
status_path = "~/.vdirsyncer/status/"
[pair nextcloud_contacts]
a = "nextcloud_contacts_local"
b = "nextcloud_contacts_remote"
collections = ["from a", "from b"]
metadata = ["displayname"]
[storage nextcloud_contacts_local]
# A storage references actual data on a remote server or on the local disk.
# Similar to repositories in OfflineIMAP.
type = "filesystem"
path = "~/.config/khard/contacts/"
fileext = ".vcf"

[storage nextcloud_contacts_remote]
type = "carddav"
url = "https://FQDNdesServers/remote.php/dav/addressbooks/users/USERNAME/"
username = "USERNAME"
password.fetch = ["prompt", "Passwort für den CalDAV-Zugang an Nextcloud"]

password.fetch ersetzt das reine klar lesbare password = „PASSWORT“.
Der gesetzte Parameter erwartet die nötige Eingabe des Passwortes in der Kommandozeile nach dem Aufruf. 

Wer den Passwortspeicher der Desktopumgebung nutzen möchte, kann hier den nötigen Parameter setzen, siehe Accessing the system keyring. Das Paket python-keyring aus den Repositories der Distribution muss  installiert werden.

Bei Fedora beziehen sich der Paketname auf die Versionierung der Scriptsprache. Als Beispiel python2-keyring, python3-keyring etc.

Erster Test, die Ordnerstruktur, anschließende Synchronisation

[ChristianGrube:~/.vdirsyncer] 1 $ vdirsyncer discover 
Passwort für den CalDAV-Zugang an Nextcloud: 
Discovering collections for pair nextcloud_contacts
nextcloud_contacts_local:
nextcloud_contacts_remote:
  - "kontakte" ("Kontakte")
warning: No collection "kontakte" found for storage nextcloud_contacts_local.
Should vdirsyncer attempt to create it? [y/N]: y
Saved for nextcloud_contacts: collections = ["kontakte"]
[ChristianGrube:~/.vdirsyncer] 1 $ vdirsyncer sync
Passwort für den CalDAV-Zugang an Nextcloud: 
Syncing nextcloud_contacts/kontakte
Copying (uploading) item unheimlich-kryptische-nummer to nextcloud_contacts_local/kontakte
Copying (uploading) item unheimlich-kryptische-nummer to nextcloud_contacts_local/kontakte
...

Einrichtung khard

Die Konfigurationsdatei ~/.config/khard/khard.conf
Getestet werden kann die Konfigurationsdatei mit dem Aufruf von khard ohne weiteren Parameter

[addressbooks]
[[Nextcloud]]
path = ~/.config/khard/contacts/kontakte/

[general]
debug = no
default_action = list
editor = vim
merge_editor = vimdiff

[contact table]
display = first_name
show_nicknames = no
sort = last_name

[vcard]
search_in_source_files = yes

Tastenkürzel für mutt

Hier musste ich meinen alten Aufruf von pc_query, welcher noch aus Zeiten der Anleitung Mutt Kontakte aus Owncloud nutzen  stammte, durch folgenden ersetzten

set query_command= "khard email --parsable --search-in-source-files %s"

Via Q und der Eingabe eines Namens kann nach der Emailadresse gesucht werden und dieser nach Auswahl mit Enter übernommen werden. Verschiedene Adressen eines Kontakts werden untereinander angezeigt

Es ist möglich diese Zeile noch zu erweitern, um durch die Eingabe des Namens in der Adresszeile via TAB die Adresse zu vervollständigen.

bind editor <Tab> complete-query
bind editor ^T    complete

Der Vollständigkeit halber

Es besteht die Möglichkeit Adressen via mutt in Nextcloud hinzuzufügen.  Ein Beispielmacro hierfür ist

macro index,pager A \
    "<pipe-message>khard add-email<return>" \
        "Hinzufügen der Adresse zu Nextcloud"

Nach dem Auswählen einer Email und dem anschließenden Ausführen des Macros, , erscheint ein Abfragedialog.

Khard: Add email address to contact
Email address: enemenepopel@got-tty.org
Contact's name [Got tty]: 
Contact Got tty does not exist. Do you want to create it (y/n)? y
First name: Gotty
Last name: Nottyfrotty
Organisation: IT
Do you want to add the email address donotreply@got-tty.org to the contact Gotty Notty (y/n)? 

Abschließend

Nun sind die gewohnten Funktionen unter mutt wieder vorhanden. Warum sich aber vdirsync nicht an die XDG Base Directory Specification hält verstehe ich nicht. Das Leben könnte so schön und das Backup so einfach sein.
Hier kann ich nur auf genug Bugreports hoffen, bei jedem Projekt, welche dies ignoriert.

1 Gedanke zu „Mutt Kontakte und Adressen aus Nextcloud nutzen“

Kommentare sind geschlossen.