As discussed at D15702 and https://bugs.kde.org/show_bug.cgi?id=391073 there is currently no way for Plasma to know the geometries of docks and panels that live outside plasmashell. As a solution a protocol is discussed here in order for plasmashell and external processes to solve this issue.
*P -> PlasmaShell
*L -> Latte dock or any external app that will support the protocol
Must be considered:
- A. The communication is going to be taken place through dbus or in other way?
- B. How the geometries are going to be published from *L to *P?
- B'1. *L publishes all geometries and their updates at the same time, e.g. if Latte is showing 2 docks and 1 panel then each time it communicates with *P it sends all three geometries even if some of them do not have any changes
- B'2. *L publishes for each dock or panel its geometry separately and that means that sends updates to *P only when there are any changes
- C. What happens if *L crashes unexpectedly? shouldnt *P drop all relevant *L geometries?
- D. How is this going to be multi-screen aware? are the panel/dock geometries enough for this?
Proposal [B'1]: Has the benefit that *P will identify all panel/docks based on the app they come from
Proposal [B'2]: For each dock/panel of each *L an id should be probably shared between *P and *L in order for updates/removals etc. to be tracked down.
I would love to hear your ideas in case I could present something for this.
PS. Latte currently supports panel/docks that live under different Activities my proposal is to not make the protocol activity-aware. If Latte updates the geometries that is sending to *P based on the current Activity I dont think there would be any problem.