Portal architecture
Currently the xdg-desktop-portal-kde process provides all the portal implementations on Plasma. It then often does DBus calls to other parts of Plasma, e.g. plasmashell (for notifications), KWin (screenshots/color picking), or kglobalacceld (global shortcuts).
My understanding is that it's possible to have different processes provides different parts of the portal interfaces. It might make sense for us to make use of that.
For example currently when receiving a notification on the org.freedesktop.impl.portal.Notification
DBus interface we use KNotifications to create a notification, which internally makes a DBus call to org.freedesktop.Notifications
, which ends up in plasmashell. plasmashell could directly implement the org.freedesktop.impl.portal.Notification
API, cutting out the middle layer, which has caused trouble in the past (see e.g. !169)