Thoughts on getting surfaces to appear on the right output
Bill Spitzak
spitzak at gmail.com
Fri May 2 13:01:43 PDT 2014
Two comments on the proposal:
1. It would seem more useful for the desktop shell to send some info
about how the client was launched in environment variables. The client
may want to do other reactions besides just placing it's window, and
this will work for clients that do not want to use the socket (such as a
client that wraps a launch of a remote client?).
2. If the desktop shell creates the socket, there is no need for it to
"send commands" on it. Instead it can directly manipulate the local end
to have the results of those commands.
I also want to rant about "getting surfaces to appear on the right
output" which is currently impossible on Wayland, even if the above
fixes are added:
The apps I am working on control multiple-window clients on multiple
outputs. There is at least one full-screen window, and then several
large (but not full-screen) windows arranged on the remaining outputs.
Sometimes all outputs are filled with fullscreen windows, and also
sometimes some of these are maximized instead of fullscreen (to make it
possible to hit the titlebar button to toggle screen-filling on/off, and
also because of important information that is displayed in the titlebar
(that may be a bad idea, but it is there...). See Nuke for an example,
if users have multiple outputs they usually put a viewer on one output
and put all the controls (a big tiled window) on the other output. Most
clients have a significant difference between the outputs (only one is
calibrated, or one is the big-screen on the wall that their customers
see, etc).
In any case our users expect to get exactly the same layout they arrived
at before when they run the software again. Wayland is not delivering
this, instead every window lands on the same output. Even if it tried to
intelligently place them on "unused" outputs it is not going to work, we
had some window managers that did this and they would randomly swap
which window was on which output, and that is definately not what the
user wants.
I know it is rejected, but I also have to point out that EVERY OTHER
SYSTEM uses an x,y position in a huge plane where all the outputs are
mapped to non-overlapping rectangles to determine which output a window
appears on. This x,y position can both be read and set by a client, and
the client can then save it in a configuration file as two numbers per
window. Wayland is breaking this: first we do not have the level of
control we have in other systems, but much more serious is we do not
have cross-platform savable configurations (and many of our users
actually do reboot to swap between Linux and OS/X).
On 05/02/2014 11:22 AM, Neil Roberts wrote:
> launches. To do this I was thinking that maybe desktop-shell could make
> a connection to the compositor on behalf of the client, call a request
> to set the default output and then pass the socket down to client using
> the existing WAYLAND_SOCKET mechanism.
More information about the wayland-devel
mailing list