Screen dimensions, top level surface positioning...

Jasper St. Pierre jstpierre at
Tue Nov 21 18:02:44 UTC 2017


There's a few reasons that Wayland not to report or allow clients to choose
absolute screen position.

The biggest is that from our experience with X11, it's hard to even
*define* such a space. Laptops plug into external monitors and projectors.
People with differently sized monitors have gaps -- the space isn't as
cleanly defined as a large rectangle. In my experience working on X11 WMs,
clients often "fight" the WM over placement, preferring to request a
position which is now offscreen because the user undocked their computer.
Simply not defining a coordinate space to position windows in is easier
than defining one, with all the complexities and edge cases that arrive
from 30+ years of developments in computer interaction.

One of Wayland's design goals is that where possible, compositors, not
clients, have the final say. While it can be more difficult to program for,
Wayland has concepts based around a relative positioning model. This allows
the compositor to place clients where it sees fit, and allows compositors
to more freely make constrainment choices so that menus don't get stuck
behind taskbar panels, or similar things.

It certainly has made some things more complicated, so it might have been
an overreaction to the complexity we all faced with X11. Hopefully that
gives you some insight into why we chose not to expose positioning to the

On Tue, Nov 21, 2017 at 8:47 AM, Jari Vuomajoki <rakkaudentuli at>

> Hello!
> I have been getting to know the Wayland protocol from the client side for
> only couple of months... So bare with me if my questions sound immature.
> It took a while to get going, the documentation is there and it is
> informative enough to build a client. It could be a lot better though or
> maybe I didn't find a proper source for it. Doxygen documentation ended up
> being the most useful.
> Here is my list of questions and thoughts. Feel free to anwer or comment
> on any of them.
> I want to compose clients based on screen dimensions. I know there are
> fullscreen and maximized options. But I want to have total control of top
> level surface sizes and placements in the screen. Now talking about single
> screen, but this can be extented to multiple screens.
> This option is not part of the protocol. I can query the screen size
> through wl_output interface, so why I cannot position a surface in arbitary
> position? Why this option has been left out?
> I want to be able to manage the positions of all the top level shell
> surfaces of the client connection.
> Ok, so now I asked it in three different ways...
> I can naturally extend weston shell and implement this option, but it
> seems a bit overkill for such a simple option to have. What I am not
> getting in the picture?
> Best Regards,
> Jari Vuomajoki
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the wayland-devel mailing list