4 ms·
What components? Wayland is literally an XML protocol that turns an XML file into a method of communication. libwayland-server and libwayland-client only handle
by sweeter 2y ago
What components? Wayland is literally an XML protocol that turns an XML file into a method of communication. libwayland-server and libwayland-client only handle communication and the internal event loop. Its completely up to the developer to write the implementations of these functions and register them in the server.
Then a client is going to query the server and ask request to do stuff via a unix socket. In fact, you don't even need libwayland, you can raw dog it over sockets manually. The idea is that there are standard protocols that can be queried and used,and you can implement this in any environment you want to. You could write the "frontend" in html and JS and run a wayland compositor on the web (which has been done [1]), you could do it with text or anything really, most people use some graphics stack.
[1] https://github.com/udevbe/greenfield https://github.com/udevbe/greenfield
- ahartmetz 2y agoNit: Wayland isn't an XML protocol. The "calls" and their arguments are described in XML, but the data is transmitted in a fairly simple binary encoding.
- thayne 2y agoThe components are: - the compositor, of which there are multiple implementations (gnome, kde, all the wlroots compositors) - the client, which often uses one of several toolkits (gtk, qt, several smaller frameworks, or even directly using the protocol) - the wayland protocol (or rather protocols, because there are several extensions) itself - other specifications and side channels for communication, in particular dbus. Many issues (although I don't think the one in OP) are due to the protocol being underspecified, and so the client and compositor disagree about some semantics, or doesn't even have a standard way to accomplish something across all compositors.