Problems in KWayland causes by API and ABI compatibility promises
David Edmundson
david at davidedmundson.co.uk
Thu Apr 16 22:38:23 BST 2020
On Wed, Apr 8, 2020 at 5:10 PM Kevin Ottens <ervin at kde.org> wrote:
>
> Hello,
>
> On Wednesday, 1 April 2020 14:04:10 CEST David Edmundson wrote:
> > Here is a list of active uses of the KWayland::Client API.
> >
> > frameworks
> > plasma-framework (for window positioning)
> >
> > apps:
> > spectacle (for window positioning)
> > kdeconnect-kde (for fake input)
> > yakuake (for window positioning)
> >
> > extragear
> > latte-dock (for window positioning, custom shadow (which could be
> > ported already) and windowmanagement)
>
> The part of the list above makes me wonder, shouldn't the window positioning
> and windowmanager features be on KWindowSystem?
Yeah, doing that will resolve 90% of the client cases.
In general for things like blur and everything the slightly higher
level abstraction is working out better as we can abstract X and
wayland in one go, which really helps the client code.
Also, it's worth really clarifying that in absolutely any proposal
KWayland as-is can't go away, so clients using that will still
function.
The slight twist on that which we need to be wary of is that client
code will return shared objects if you request a
KWaylandClient::PlasmaShellSurface::get(window())
for the same window from two places you'll get the same PlasmaShell
instance returned - and therefore the same wl_resource.
If we hypothetically had a kwayland2::client also have a
plasmashellsurface::get() method we would have two plasma_shellsurface
wl_resources's for the same wl_surface which is a protocol error and
our client will get violently killed.
> > workspace:
> > kwin unit tests
> > libkscreen
> > breeze (till Qt5.15)
> > oxyen (till Qt5.15)
> > xdg-desktop-portal
> > kinfocenter
> > plasma-workspace
> > plasma-nano
> > kscreenlocker
> > powerdevil
> > kwayland-integration (the backend for kwindowsystem)
> > plasma-phone-components
> > plasma-integration
>
> I think the above is less of an issue, right? Because workspace would have a
> copy of KWayland which could be shared with whatever stability constraints
> needed.
It means it has to stay as an exported workspace lib, but yeah it
wouldnt' be a problem.
More information about the Kde-frameworks-devel
mailing list