So, relative to the backported stuff out in 4.0.3, we've got a small
pile of minor bugfixes and improvements.  We've got the slightly more
visible _NET_FRAME_EXTENTS fix, that's visible in Firefox usage.  And,
most importantly, we've got the RandR changes giving sensible support
for multiple monitors.  It's been over 2.5 years since those landed in
trunk, and I at least havve been exercising it pretty consistently for
a while, without any big surprises in behavior.  So, it's probably
about time to let it work its way into a release.


The one outstanding thing I'd like to do something with before that is
VirtualScreens.  This was added by Claude post 3.6, right before
Richard seized power, and made an attempt toward allowing manual
config of multiple monitors.  It certainly has a number of very odd
quirks.  The times I've experimented with using it for real I pretty
quickly gave up under the weight of all the weirdness, and even using
it for testing mostly winds up a bit eye-crossing.

With the RandR code, with any remotely modern X server we now get
actual monitor info from it, and the current code does a fair job of
letting us do things like monitor-relative positioning etc.  And on
sufficiently old or weak X servers without new enough RandR, or
environments where you want to lie about it (e.g., a single ultra-wide
monitor you'd rather treat as two normal-wides), MonitorLayout allows
manual specification.

VirtualScreens does in theory give you the ability to show different
workspaces on different VS's, which is a place the other code doesn't
even try to go.  But even that comes with a lot of limitations due to
X (a window can only be displayed once, so showing the same WS on both
sides, or windows occupying multiple WS's, won't work so hot).  From
the code side, the infrastructure supporting VirtualScreens adds a lot
of weird complexity and indirection to a lot of window handling, Root
stuff, etc.  I regular wind up falling down a rabbit hole of VS stuff
when looking at occupation or workspace switching or whatnot.

>From the dev side, life would be easier if it could all go away.  From
the user side, it sure seems like it has too many weakness and quirks
to be attractive even if it were the only way to attempt dealing with
multiple monitors, and it won't be anymore.  So, I propose that we
deorbit it.  I suggest a plan like:

- In the upcoming release (4.1.0 presumptively), we deprecate it and
  complain when we see it in configs, but everything continues working
  the same.

- In the next non-point release (4.2 or 5.0, or maybe 123.0 if we feel
  creative), remove handling of the config param, so we just always
  wind up with the code state we currently have for everyone who
  doesn't have it in their config (which should be everyone ;)

- Then over time we can start unwinding ->vs and the various
  Scr->*root things as we have to deal with them, since they could
  only ever be in one known state.


So, who wants to speak up in favor of VirtualScreens?  Or against
working up a release?


-- 
Matthew Fuller     (MF4839)   |  fulle...@over-yonder.net
Systems/Network Administrator |  http://www.over-yonder.net/~fullermd/
           On the Internet, nobody can hear you scream.

Reply via email to