Bug 78372 - create multiple windows with offset

Pekka Paalanen ppaalanen at gmail.com
Fri May 9 00:34:16 PDT 2014


On Thu, 08 May 2014 10:52:51 -0700
Bill Spitzak <spitzak at gmail.com> wrote:

> On 05/07/2014 10:54 PM, Pekka Paalanen wrote:
> 
> > This is similar to session save/restore, lacking a better term for it.
> > We do not even pretend to support or enable this yet. It is just yet one
> > more feature that the shell protocol suite for desktop should cover,
> > but so far no-one has done any work on it AFAIK.
> >
> > If there is not one already, you are welcome to open a feature request
> > bug about application layout save/restore.
> 
> But the only practical method I can see is to allow the client to query 
> and set the output and x/y position of any surface directly.

You have just been starting at X11 for too long.

> Possibly you are reading the words "save/restore" literally, in that you 
> are imagining some blob of data stored in the compositor that is 
> recognized to restore the layout. However this is NOT what is wanted. 

Sure, that's the first thing comes to my mind. Let the client save a
cookie or an encrypted blob, that it can pass back to the server when
it creates the windows again. /handwaving/

When I say that I have not heard anyone working on it, it really means
I do not have nor seen any plan *yet*. It is a complicated issue, which
cannot be designed in an email, and especially not by me.

> Clients must be able to generate a usable layout the first time they are 
> run, they must be able to do something intelligent if the set of windows 
> changes from that in the saved layout, and use a layout from one system 
> on another (including cross-platform), and be able to choose layouts 
> from a list and add the current layout as a new item on the list.

No. With separate windows you simply cannot do that. The client has no
clue whatsoever on e.g. what positions on an output might be ok, what
else is on the screen, or which outputs would be ok to conquer. You
also might be on a tiling compositor, where your expectations simply
totally fail.

Your program would have to be a mind-reader to get the initial layout
right for any user.

Instead, what an application could do, is describe the expectations it
has for its initial window layout, if possible. That is again left up
for the desktop shell protocol suite to develop.

If you want to be in absolute control of the layout (you the app, not
even the user), use a single big window with compartments or something,
maybe per output. If you think that sucks, I would probably agree. But
I still cannot see how you could guess which output to pick for what,
but that's probably just me never using special purpose monitors.

- pq


More information about the wayland-devel mailing list