[compiz] compiz works really strange with external monitor

Kristian Lyngstøl kristian at bohemians.org
Thu Feb 7 15:46:58 PST 2008


On Feb 7, 2008 11:39 AM, Michel Dänzer <michel at tungstengraphics.com> wrote:
>
> On Thu, 2008-02-07 at 10:16 +0100, Danny Baumann wrote:
> >
> > > > > "metacity doesn't know what is the full screen resolution"
> > > > > https://bugzilla.redhat.com/show_bug.cgi?id=431302
> > > > >
> > > > > Can you please look at it and say if this looks like a compiz, X,
> > > > > gnome which bug :)
> > > >
> > > > I've been aware of this issue for about a year or more now, but never
> > > > really considered it a bug. Like  Danny sais in the cf bug report [1],
> > > > it's totally wm-dependant how to treat this issue.
> > >
> > > From users point of view it definitely is a bug and should be fixed.
> >
> > It _is_ a bug, and definitely should be fixed - but IMO not inside
> > Compiz. Compiz can work around this, but then you have fixed
> > maximization, but still broken panels, because panels place themselves
> > and rely on Xinerama as well (e.g. gnome-panel via Gtk -> Gdk which
> > calls XineramaQueryScreens).
> > Do you want to have workarounds in all X11 clients out there that use
> > Xinerama? I'd rather disagree to that ;-)
> > I still think there are only two valid locations to fix this: either the
> > driver to not report a weird head configuration, or the X server to
> > filter out weird configurations.
>
> Well, it's not so much a 'weird configuration' as a faithful
> representation of reality. :) What to do with this information is policy
> and thus not up to the X server.

This should be obvious... The xinerama query is returning the actual
heads, as it is supposed to. There are uses for this setup, and it
should be possible to detect without extra work from a client point of
view, as it is now. "Fixing" this in X is not something I consider a
good solution. For starters, you would have to add another means to
detect setups like this.

There are valid reasons where you actually _want_ the existing
behavior. I can name at least a couple.

As for handeling this in various panels and the like, I believe the
expected behavior is pretty obvious, with a few quirks. Allow the
panels to snap to either screen edge during movement, and add some
logic for what to do when the screen changes. This, however, is not up
to compiz and thus is not the subject of this discussion. But it's
definitively not up to X either.

Having the option to remove what users experience as redundant edges
make sense in Compiz. A simple option would do the trick in the vast
majority of cases, but if we really want to, it wouldn't be impossible
to add automatic detection of what the user want based on struts. This
would involve panels actually handling this sanely too.

I do see why you would avoid having it in core, but I believe this is
a functionality that would be perfect in the workarounds plugin. It's
a fairly straight forward thing to implement and I don't see any down
side right now. We certainly have features there that are less proper
than that.

- Kristian


More information about the compiz mailing list