That is a common misunderstanding or misconception.
Waylandâs protocol stack was designed around the concept of aggregation rather than subtraction.
Meaning that at its core it only deals with the essential operations needed by all compositors and their clients, e.g. communicating window content.
For each type of usage scenario, e.g. mobile, embedded, desktop, etc., there can then be additions that add features needed but also possible.
One of the things that is not universally possible is a global 2D coordinate system.
For example in a 3D scene (VR, XR, AR) there can be many 2D surfaces and each could have a 2D coordinate system, however it would be very hard, if not impossible, to define one that is valid across all of them.
This absence of global coordinates is often misunderstood as preventing window placement because global coordinates can be used for that.
However, there are many other options for placement, some of which being available on compositors that support multiple windows, e.g. desktop.
For example one of the most common placement tasks is to position a popup, e.g. context menu near the mouse clock position, normal menu close to the menu entry, choice dropdown below the choice input field.
Desktop compositors provide the features for that through an interface called the xdg_shell protocol. Essentially the application will ask the compositor âI have this popup, this is my reference position/rectangle and I want the direction of popup to be downâ.
There are lots of other possible requests, e.g. âon the left hand side of my main windowâ, etc.
One of the primary ideas behind this is to add context in the communication between app and window manager.
A tiling window manager, for example, can then decide to show certain sub windows in the same tile as the main window while showing other types in their own tiles.
If it just had a pair off coordinates and maybe some window flags, it would need to guess and possibly get it wrong.
Another important aspect is that any compositor can offer special features to its clients (e.g. a global coordinate system) and they can react on that instead of always seeing a capability but never being sure it is actually supported (a tiling window manager on X11 will often just ignore positioning requests)