Rethinking the KOrganizer reminder daemon

Carl Schwan carl at carlschwan.eu
Thu Aug 19 00:48:59 BST 2021


Le samedi 7 août 2021 à 12:47 PM, Volker Krause <vkrause at kde.org> a écrit :

> Hi,

Hi :)

Apologies for the delay. Actually, I already sent a reply a few days ago but it seems
my SMTP config in KMail broke and I didn't get sent as well as a few other emails :(.

> how we handle event reminders came up in a recent Plasma Mobile calendaring
> discussion, I've tried to put that into a concrete proposal here.
> For KOrganizer event reminders are handled by korgac [1], a 20+ year old piece
> of code. While that works reasonably well from a technical POV, there's a
> number of issues worth addressing IMHO:

> (A) Security/privacy: korgac still has support for iCal alarm types "email"
> and "procedure", something that shouldn't exist in a world of shared calendars
> and iCal invites.

> (B) UX: the main UI is a big dialog popping up in the middle of your screen.
> We nowadays have a much more powerful desktop-wide notification system
> supporting grouping, interaction, priorities and various inhibition
> mechanisms, which would be better suited for this.

> (C) Duplication of the reminder logic with other calendaring apps, see e.g.
> Calindori's implementation [2].

> As a way forward, we could:

> (1) Drop support for iCal alarm types due to their danger, and handle all
> alarms as regular notifications. For the rare cases where people actually rely
> on that functionality KAlarm provides that for local (safe) sources.

> (2) Use KNotification as the main and only UI for reminders. This means in
> order to see event details beyond the title you would need to click on the
> notification to open the calendar app. This also means the suspend option
> would only be able to have an automatic default time (this is the only
> functionality change I'm not entirely sure about, but it matches what is
> usually offered on phones for example). Dismissing/suspending individual or
> all reminders remains possible thanks to notification grouping.

> (3) Base this on Nico's KCalCore plugin work once that becomes available for
> Akonadi as well.

> (4) Standardize the D-Bus interface towards the calendaring app between
> KOrganizer, Calindori and Kalendar.

I would propose for that to use the existing Korganizer org.kde.Korganizer.Calendar.xml
interface (and rename it to just org.kde.Calendar.xml).

> (5) Find a way to define a "default calendaring app" (like it's done for web
> browsers), so that the reminder daemon doesn't need to hardcode which
> calendaring app to launch. With (3) - (5) we should have all the pieces to
> move towards a single unified reminder daemon that works with all our
> calendaring apps, and works well both on desktop and mobile.

I saw something made by David Faure in the freedesktop mailing list around this idea
of being able to define default applications for use cases. Would probably
be a good idea to use this once ready: https://lists.freedesktop.org/archives/xdg/2021-May/014496.html

> (4) and (5) could also be beneficial for the Plasma calendar integration.

Yeah also we should port the plasma calendar integration to the new Calendar
plugin system.

> Thoughts?

The plan sounds good. My only worry is how to synchronize event deletion when
for example the entire Akonadi database is deleted. I guess we should in a way
verify that the event still exists before triggering a notification.

Cheers,
Carl

> Thanks,
> Volker
>
> [1] https://invent.kde.org/pim/korganizer/-/tree/master/korgac

> [2] https://invent.kde.org/plasma-mobile/calindori/-/tree/master/calindac


More information about the kde-pim mailing list