User: Password:
Subscribe / Log in / New account

Mutter: a window manager for GNOME 3

Mutter: a window manager for GNOME 3

Posted Aug 6, 2009 9:02 UTC (Thu) by michaeljt (subscriber, #39183)
Parent article: Mutter: a window manager for GNOME 3

The tabs-in-the-window-manager thing sounds like a very good idea to me. Can someone explain to me though, why Gnome shell needs to be so tightly integrated with the window manager? And does the OpenGL rendering have to be such a problem, or can things not just fall back to fast paths, which will work fine on legacy hardware, when no special transformations, rotations or things are in use?

(Log in to post comments)

Mutter: a window manager for GNOME 3

Posted Aug 6, 2009 12:02 UTC (Thu) by iq-0 (subscriber, #36655) [Link]

Gnome shell effectively does desktop management (switching and zooming of desktops) at it's core. Virtual desktops however are merely an illusion created by a window manager.

Furthermore gnome shell seems to make heavy use of zooming, which in software is extremely expensive, but zooming of tiles in opengl comes almost for free.

One could come up with some mediocre half blood that would emulate this using no opengl, but that would mean the tricks like "taking a snapshot of a virtual desktop and scaling it in software". This couldn't be done fluently and can't do real-time updates giving it a very amateuristic and uncomfortable feeling. And this has to be made, tested and maintained practically forever.

The alternative (a good alternative for non-opengl system) would be how gnome 2 does it. That is: use a window manager that does simple window management and simple virtual desktops. Many window managers supply this (including the simple taskmanager and other panel features).
And you pager, menu, systray etc. are just undecorated windows that stick to the sides of your viewport. Nothing is stopping anybody from using them even if they are using the gnome shell (they can be combined if you really want to).

So it simply comes down to: Gnome 3 is shipping a opengl based default look and feel for it's desktop environment. Some people can't or don't want that. The only thing they (or some distribution for that matter) has to do is create another configuration that don't use these features and that could easily serve as a alternative default. This would probably depend on some non-main gnome applications, but frankly, hardly anybody uses the raw main gnome set of applications, they use their distributions version of them. Which ofcourse don't care if they depend on some non-main gnome package :-)

Mutter: a window manager for GNOME 3

Posted Aug 6, 2009 12:44 UTC (Thu) by michaeljt (subscriber, #39183) [Link]

I assume that was an answer to my third point, but I think you may have misunderstood me there. To take an example, if I use Compiz as a window manager, with wobbly windows enabled, most of the time my windows will not be wobbling. If they wobbled while I typed into them, that would annoy me greatly. At this point in time, there is little visible difference between Compiz and Metacity - all windows are shown front on, at 100% with no rotation or anything. And if I were using the Mesa software rasterer instead of an accelerated graphics card (yes, I know that Compiz refuses to start in that case, but that is not my point), it would not be very difficult for the rasterer to spot that the onscreen tiles (my windows) were identical before and after Compiz had finished transforming them. So the transformation can be reduced to a simple blit, which can be handled perfectly well by legacy cards.

So in effect, what I was meaning was that it ought to be possible for Mutter/Gnome shell to use OpenGL as a backend and still work fine on legacy systems in most situations. And with a bit of smart optimisation (setting the level of effects, handling the effects cleverly) it should even be possible for them to work reasonable well on legacy hardware at all times.

Copyright © 2018, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds