WARNING: This resource is a work in progress. Some things don’t work yet. If you’re interested, feel free to hack on this repo; issue reports and pull requests are welcome!
This is an Akonadi resource that lets KDE PIM applications like Kontact access contacts and calendar events stored in a DecSync directory so they can be synchronised with other devices. Similar backends exist for Evolution, Radicale and Android, for example.
Feature | Reading | Writing |
---|---|---|
Calendar names | OK | — |
Calendar colours | — | — |
Calendar events | OK | — |
Address book names | OK | — |
Contacts | OK | — |
Arch Linux users can install the akonadi-decsync-resource-git AUR package.
This resource uses the C bindings to libdecsync, so you’ll need to install the library and its headers. Qt ≥5.11.0, KDE Frameworks ≥5.38.0 and Akonadi ≥5.2 are required, too.
cd path/to/project/repository
cmake -S . -B build -DCMAKE_INSTALL_PREFIX=$MY_PREFIX -DCMAKE_BUILD_TYPE=Debug
cd build
make
# to install to $MY_PREFIX:
make install # or sudo make install
# to uninstall:
make uninstall # or sudo make uninstall
MY_PREFIX
is where you install your Akonadi setup, replace it accordingly.
Note: on Windows, use nmake
if you’re building with the Visual Studio compiler, or make
if you’re using the minGW compiler. (This might be a moot point as I don’t know whether libdecsync builds or works on Windows yet.)
MIME types this project deals with are:
text/directory
: for contact datatext/calendar
: for calendar dataThere are Akonadi-defined subtypes:
application/x-vnd.akonadi.calendar.event
application/x-vnd.akonadi.calendar.todo
(unsupported)application/x-vnd.akonadi.calendar.journal
(unsupported)application/x-vnd.akonadi.calendar.freebusy
(unsupported)
At the moment, this resource only supports event calendars, i.e. application/x-vnd.akonadi.calendar.event
. As DecSyncCC on Android assumes all calendars are event calendars and calendar apps show them as such, supporting the other types using DecSync would require more work. For instance, a new collection type could be made for those so to-dos or journal entries can be synced with the appropriate mobile apps.
A lot of Akonadi-related KDE documentation still seems to use KDE4 APIs, not the new KF5 ones. api.kde.org is helpful, as is reading the KF5 Akonadi header files.
- Akonadi-KDE API documentation
- General KDEPIM developer information, e.g. tutorials
- KDEPIM contact
- DecSync directory format
- DecSync contact and calendar storage
- DecSync RSS storage – Akregator doesn’t obviously support external feed synchronisation, so this resource doesn’t handle RSS feeds. If I’m wrong about this, issues and pull requests are welcome!
- The template comes with an input file for KDE’s KConfigXT framework for improved configuration file handling. The generated class is called “Settings”, so access to its data is provided through its singleton instance method
Settings::self()
. See also here.