Closed cassidyjames closed 2 years ago
One note here before we go too deep into designing and implementing some Gala <-> Dock API that ties the two together and essentially stops them from being modular:
We should investigate what the current Wayland protocols are for this kind of thing and whether any of them are suitable.
None of them will be implemented in Mutter because GNOME Shell is monolithic. But there will already be some standard Wayland protocols for this kind of thing for other Wayland compositors like Sway.
So we should at least look at those (proposing changes if necessary) and the feasibility of using custom Wayland protocols in Gala.
That way, the dock could in theory be used on other compositors that implement those protocols. And alternative dock-like applications would run on Gala.
One note here before we go too deep into designing and implementing some Gala <-> Dock API that ties the two together and essentially stops them from being modular:
We should investigate what the current Wayland protocols are for this kind of thing and whether any of them are suitable.
there's the wlr_foreign_toplevel_manager for window management (the current alternative would be implementing the org.gnome.Shell.Introspect
interface as said in #142), and wlr_layer_shell for positioning shell components surfaces (the current alternative is using the Meta.WaylandClient class to launch shell components and use that to find the components surfaces and positioning them on the desired areas).
So we should at least look at those (proposing changes if necessary) and the feasibility of using custom Wayland protocols in Gala.
there's an open issue in mutter about allowing libmutter users to implement others protocols, however, i don't think there's a way to implement custom protocols in Gtk4.
Before investing any time here we still need the results of the user study. From the initial data I had seen it sounds like we might not have to implement any window management features at all and users are more interested in backgrounding
I agree it's too early to get into the weeds here. The UI study's not even wrapped up and we haven't aggregated and interpreted the results at all; I opened this to help plan out the overall project, but I'm marking as blocked for now while that other work is ongoing.
(Sharing what APIs and whatnot do exist is still helpful, though! That's part of the process as well.)
I'm going to close this in favor of a few other issues that are more scoped down to individual APIs that we'll want. A couple of them are:
https://github.com/elementary/gala/issues/1377 https://github.com/elementary/gala/issues/1317
A desktop dev (e.g. David or Corentin?) should draft any required API that will be needed e.g. in Gala before we get too far implementation in case any problems/better designs emerge.