This is the eleventh article in a series on common usability and graphical user interface related terms. On the internet, and especially in forum discussions like we all have here on OSAlert, it is almost certain that in any given discussion, someone will most likely bring up usability and GUI related terms – things like spatial memory, widgets, consistency, Fitts’ Law, and more. The aim of this series is to explain these terms, learn something about their origins, and finally rate their importance in the field of usability and (graphical) user interface design. After a rather long hiatus, this eleventh instalment will focus on bling, desktop effects, and compositing, and what they can contribute to the desktop experience.
What, how, when?
The term “desktop effects” in and of itself is rather meaningless. The world’s ugliest interface, CDE, had a few desktop effects (for instance, during drag and drop operations), but I think few people would think of CDE when talking about desktop effects; they are almost always referring to the various effects provided by a compositing window manager. So, this article won’t be talking about the CDE variant of desktop effects, but the hardware accelerated ones which are currently used in all major operating systems.
Let’s first explain what a compositing window manager actually does. The difference between a compositing window manager and a normal one is that the former outputs to a buffer, where the latter outputs directly on the screen. The benefit of outputting to a buffer and the screen is that you can then perform tricks on the contents of the buffer (fading, translucency, scaling, distorting, contorting, etc.), after which the compositing window manager combines the content of the buffer and the screen into one.
There are 2D as well as 3D compositing window managers. GNOME’s Metacity is an example of a 2D variant, and can aid in for instance translucency effects. However, as soon as you need to do something in the 3rd dimension, you need a 3D compositing engine, which makes use of the power of the video card, either through OpenGL (Quartz Extreme, Compiz Fusion, KWin) or DirectX (DWM).
The first mainstream compositing window manager was Quartz, which was released with Mac OS X 10.0, in 2001. However, it wasn’t until Mac OS X 10.2 that Quartz became hardware accelerated, and turned into Quartz Extreme (Quartz Extreme requires a Radeon or GeForce2 MX video card with at least 16MB of RAM). Desktop effects in Mac OS X today include things like the magic lamp minimise effect and Expose.
Microsoft was working on its own compositing window manager, the Desktop Window Manager, which the company first demonstrated during WinHEC 2003. DWM wouldn’t be released in an official product until Windows Vista in late 2006/early 2007. Interestingly, the Compiz trademark “wobbly windows” were first demonstrated using DWM on Longhorn [1st video]. DWM requires at least a DirectX 9 capable video card, a WDDM driver, Pixel Shader 2.0 support, and support for 32bits per pixel.
My favourite compositing window manager is Compiz Fusion, because it allows an incredible amount of flexibility. The history of compositing on X is a complicated one, as it involved several different projects over the course of a few years, but we can now say that the main two 3D compositing window managers for X are Compiz and KWin (as of version 4.0, still relatively young). Compiz is relatively easy on hardware, and most Ati, NVIDIA, and Intel chipsets will do the job.
Pointless bling, or useful addition?
The controversy, if you can call it such, is that some say that compositing window managers and the effects they facilitate are nothing but useless bling, which add nothing to the desktop experience, and only hog system resources for no apparent reason. I’ve always been strongly opposed to this train of thought, and I believe that compositing window managers are infinitely useful.
We’ll be getting a bit esoteric here, but please bear with me. Traditionally, user interface elements have always been incredibly static. What I mean by that is that they have no “feeling” to them; they’re just lumps of pixels, and have absolutely zero physical qualities. User interface elements are strictly virtual in that they share no characteristics with real-world objects.
Compositing window managers, and Compiz in particular, have changed that. Thanks to these new technologies, user interface elements are slowly gaining more physical qualities, making it easier to interact with them. The best example of this might surprise you: wobbly windows. Wobbly windows is my all-time favourite Compiz plugin because it is The One plugin that turns windows from inanimate, virtual lumps of pixels into actual objects that have real-world properties: they bend and move as you drag them around, just like waving a piece of paper in front of you.
Minimise and maximise effects are also good examples. Before the advent of desktop effects, there was no visual difference between minimising and closing a window, or between maximising and opening a window. Several completely different types of UI behaviour had the exact same visual appearance, which can be confusing. A crude solution to this were minimise effects that used “shrinking boxes”, but that was rather cumbersome.
Now, with minimise effects like the magic lamp or shrink, you not only get a visual clue about where your window is going, but also about what is actually happening. Closing a window now has a different effect than minimising, meaning you have a visual difference between the two; the same applies to opening and maximising.
Compiz’ Cube effect is another good example of turning an inherently virtual and static concept into something more physical. I always hated virtual desktops, because the non-visible desktops simply didn’t really exist anywhere. When you switched from one to another, they just appeared out of nowhere, without any visual cue as to where they came from, or where they went to when you switched away.
The Cube fixed all this. I don’t know who the brilliant mind was who came up with it, but all of a sudden virtual desktops had a place where they existed if they weren’t the currently active desktop. My brain finally had an idea of where they were, turning virtual desktops from something abstract and difficult to grasp into an insanely simple concept that almost anyone will be able to understand.
Lest we forget, there are also a number of useful features provided by compositing window managers that are strictly related to accessibility, such as smooth desktop zoom and negative, which aid people with disabilities in using their computers. Even though functionality like this existed before the advent of compositing, new technologies have made them easier to use and much smoother.
I find it incredibly shortsighted to say that desktop effects are nothing but pointless bling; sure, it may be that you yourself are much more productive with an old-fashioned stacking window manager, but that doesn’t mean everyone is. Compositing aids in making computers easier to use, both for “normal” people and people with disabilities, and therefore, it’s a very useful and welcome addition to the computing landscape.
Why Compiz rules
At the beginning of this article, I stated that Compiz was my favourite compositing window manager. The reason for this preference stems from the openness and configurability of Compiz and its various plugins, which I believe are a must for such a technology.
In general, I am a proponent of keeping software simple, with as few configuration options as possible, and work hard to provide a sane set of defaults. This is usually not a problem because there almost always are several applications that do the same thing, each with a different set of defaults, giving the user enough choice to pick one that he likes.
For something as integrated and important as the window manager, this is not the case. Most users won’t even have a clue as to what a window manager is, and will have to deal with the defaults, because they can’t (easily) switch to an alternative. As such, it makes sense to allow users to configure the way their user interface behaves, and Compiz allows you to do just that. Pick a set of conservative defaults, and provide an intuitive configuration panel for further finetuning.
Of the three main platforms, Compiz is by far the most configurable and open, while DWM and Quartz Extreme are completely static in their configuration. There has been some talk about the possibility of DWM being opened up to third party developers, but for now, it’s still completely closed. This means that of the three major platforms, Linux/X provides its users with the most advanced compositor, simply because you can extend and tailor it to your own needs if you so desire. With the other two, it’s eat it for beat it. Gosh, how I miss wobbly windows and the cube on Windows and Mac OS X.
Of course, that doesn’t mean Compiz is perfect. CompizConfig Settings Manager has improved a great deal already in its lifetime, but it’s still far too complicated to be used by non-geeks. Sadly, many of the alternatives, such as the panel implemented in Ubuntu, are too simple and barely allow for any control. I think the Compiz guys and girls need to work hard on making ccsm more accessible, in such a way that it doesn’t require a degree in physics and geometry to figure out how it works.
I also want to make specific mention of KWin: KWin is also a good technology, and has the advantage of being well integrated into KDE. It also allows for plugins and fine-grained control, but honesty commands me to say that I simply haven’t used it often enough to say anything sane about it.
???
I thought this article is about usability. Instead you proclaim that openness makes a compositor more advance even if it’s too complicated to be configured? And what has wobbly windows to do with usability?
You’ve got a really strange definition of “usability”.
Believe it or not, most users (even advanced users and geeks) don’t like to spend their time configuring or recompiling apps. Instead their glad when developers decided for sensible defaults so they don’t have to fiddle with the apps. That’s a main point of usability. It’s not about – “configure / compile yourself – I was too stupid to think about users needs, so I simple opened up the code and added a complex configuration file so everybody can spend valuable time trying ..”
And I don’t see why “open” and “configurable” makes a software “more advanced”.
Edited 2009-04-04 17:24 UTC
You didn’t read very well, did you? I specifically explained why certain effects make a desktop more usable for some people.
I also specifically explained configurability is a good thing in this context, and that’s why Compiz is the best option. However, configuring Compiz should be made easier still.
You need to go back, and read it again. Just copying a few select sentences and pull them out of context is no way to comment on an article.
Thanks for reminding me of one of the funnier exchanges I have ever seen on OSAlert:
http://www.osnews.com/thread?169922
Edited 2009-04-04 17:33 UTC
Wobbly windows are SO AWESOME you should never question them. Ever!
++
“more openly extensible” would have been more accurate.
“more advanced”, to me, would refer to the technical capability of the window manager.
KWin is very nice and can also function as a normal (non-composite) WM, in case there is no hardware support available. However, KWin 4 is still very young and crashes often on login or when changing configuration options. SO it still has quite a way to go, but it is very promising. I like the window/program specific settings etc. (that are actually supported since the KDE 3 times and have nothing to do with composite).
Wow, that shouldn’t be happening. You’re certainly in a minority of people experiencing such serious bugs with KWin. You might want to report that to KDE.
is there any code sharing btw kwin and compiz?
i am glad kwin uses its own composite effects.Compiz feels and behave like gnome app and it is annoying to use it with kde.
kwin(in kde k.2) has almost all compiz effect and it seems to be more efficient than compiz
anybody here who use kde 4.2 prefer compiz over kwin? why?
There’s no shared code between the two.
It’s interesting to see how users who aren’t into the scene as much still notice the difference between Compiz and a native WM like Kwin (and Gnome’s own compositing WM once it’s done). Compiz feels out of place with every DE because it runs on top and limits the underlying WM’s features. Intercepting keyboard shortcuts for instance.
IMHO Compiz is an ugly hack and it won’t be long until it’s gone. It did bring bling to the linux desktop, so it deserves credit for that.
Edited 2009-04-04 18:39 UTC
What are you talking about? Compiz *is* the native window manager when desktop effects are turned on. Metacity isn’t even running. I’m not a big fan of compositing. But there is nothing “out of place” about compiz in Gnome.
Edited 2009-04-04 18:49 UTC
I prefer KWin over Compiz because I use KDE. KWin’s shadows are very slow and blur usually screws up everything, whilst Compiz is very fast and has a bunch of unique features I used on a daily basis back in my GNOME days.
I also noticed a couple of weeks ago how Compiz 0.8 series is very much faster than the previous 0.6/0.7 were.
But I am an idealist in the way I don’t want to mix Qt and GTK apps, Firefox being the only exception in that matter.
Don’t knock wobbly windows before you’ve tried wobbling windows while whacked on weed. All wight?
Especially when you get them up into a corner of the desktop and they get that “standing wave” thing going. It adds so much realism. Sheets of paper on my real desktop get up and start gyrating around all the time. Why not on my computer desktop?
Edited 2009-04-04 18:37 UTC
No but it’s fuuuuuuun..!
“Compiz’ Cube effect is another good example of turning an inherently virtual and static concept into something more physical. I always hated virtual desktops, because the non-visible desktops simply didn’t really exist anywhere.”
The desktop pager on the taskbar/launchbar/whatver-you-call-it that any WM has shows where each is in relation to another. Generally speaking, ‘1’ is in the top right, ‘2’ is to left, etc etc, unless you like your layout different. The cube is really just bling.
“Wobbly windows is my all-time favourite Compiz plugin because it is The One plugin that turns windows from inanimate, virtual lumps of pixels into actual objects that have real-world properties: they bend and move as you drag them around, just like waving a piece of paper in front of you.”
Wobbly windows are strictly eye candy. Many windows don’t have a real-world counterpart. PDF files, sure, but not, say, 3D Studio MAX. Pieces of paper don’t flutter on my desk, unless the window is open, but then they are fluttering down the hall. Besides, ever tried to read a piece of paper why it was fluttering? Not very easy.
You also left out the one feature of such window managers that is actually extremely useful: window previews. Hover over a taskbar entry in windows7 (and vista i think, too, though it’s been a while), or in MacOS X on the dock, and you get a small, live preview of the window in question. Similarly, switching with alt-tab gives a quick preview, with win-tab a bigger one (though, that’s mostly for eye candy, too).
Even that feature doesn’t require a fully composited manager, though. The window preview during alt-tab was available in Windows XP via the task-switch powertoy.
I think it does. XP/GNOME/KDE/whatever else, without compositing, gives you only the icon of the window.
The standard alt-tab in XP just gives the icon. One of the Microsoft PowerToys for XP has a thumbnail alt-tab that’s fairly fast. It only gives a thumbnail of the currently selected window, and sometimes it’s a tad bit slow, though.
EDIT: You can find it at http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys….
Edited 2009-04-05 08:39 UTC
Maybe it’s because I’m so tired but I can’t stop laughing after I read that.
The fluttery window thingy though was the only thing that convinced my girlfriend to use Linux. Now she doing all “Wooble wooble wooble” instead of getting some real work done.
“1” is top-left, “2” is top-right, “3” is bottom-left, and “4” is bottom-right. Like so:
1 2
3 4
While others of us progressed beyond the sensorimotor stage at about 2 years of age, are capable of at least basic abstract thinking, recognize that objects can continue to exist even when we can’t see them, and consider the cube to be a bit childish.
http://en.wikipedia.org/wiki/Jean_Piaget#The_stages_of_cognitive_de…
Edited 2009-04-04 19:28 UTC
The window for editing has expired. But I think that my post might have been a bit over the top. I’m not a huge fan of the cube, understand. But please don’t read too much into my Piaget post.
Quoting Piaget… Interesting, studied that stuff in quite some detail back when I was studying Psychology at the VU University.
You are making a fatal flaw by assuming that there is a similarity between virtual objects and real objects. Let me explain why there is a difference between virtual desktops and, say, a ball underneath a cup.
When you hide a ball underneath the cup, I can see exactly what is happening, and why the ball is now not visible anymore. I saw the cup cover the ball, and as such, I can deduce that the ball has not disappeared, but is still in the exact same place – just with a cup over it.
The virtual desktops example is much, much different. Say I have four desktops, and I’m currently on desktop 1. When I click to move to desktop 2, it just switches. No animation, no movement to indicate where everything is going. It just vanishes instantly, and the other desktop appears instantly. There is no indication of where things are going, or where they are coming from. As such, your comparison is rather void.
I can assure you that virtual desktops are an inherently troublesome concept for many people –
Crap, and there Steve goes, undermining his own post . I’ll continue anyway.
– because there are things happening on the screen that they can’t see. Making it all more physical, as well as making it visible where things are going, and where they are coming from, gives them a few latches to hold on to when it comes to virtual desktops.
Thom,
After the window for editing had expired, I had second thoughts regarding tone. And consequently added an addendum as a response to my original one.
Edited 2009-04-04 20:30 UTC
For power users who know about virtual desktops, the cube animation is not really necessary.
For a newbie, a computer-almost-illiterate person, if they accidentally click on one of the virtual desktops on the bottom-right corner of the screen, they might not realise what has happened.
On Metacity, it looks like all the user’s programs have crashed and that they have lost all their work. To their mind, whatever they clicked on caused everything to crash. Result: User shuts down the computer in frustration and really does lose all their work.
On Compiz, the user sees that their programs have simply moved to a different place (or that their view has changed). The user realises that the desktop switcher is not destructive. Result: The user experiments more with the desktop switcher, clicks the first box and the cube rotates to reveal their open programs again.
For this reason, the cube is excellent visual feedback.
To the above poster: I built my friend a computer running Ubuntu and Vista. He uses Ubuntu almost exclusively… but most of his computing time is spent wobbling the windows, turning the windows into paper aeroplanes, and writing fire onto the screen. So, I sympathise with you, but at least he’s enjoying his computer experience.
But they would easily understand a face of a cube detaching from the front of their screen and rotating?
OK. Maybe after a few tries they might figure it out. But what’s wrong with the default “Slide In” animation that Compiz provides? The cube is stupid and not even a reasonable metaphor. What happens if you have more than four desktops? Six, you say? But a cube’s sides have equal dimensions. The “cube” is not even a cube. It is a rectangular prism. Turn its top or bottom faces toward you, and I don’t think you will end up with what you want.
I don’t know about compiz, but kwin has started to address these issues :
http://www.youtube.com/watch?v=Gg0ma-qKHrM
http://blog.martin-graesslin.com/blog/?p=217
I don’t know if that makes the cube effect more usefull for those who don’t use it (including me) but it is not as these are difficulties which are inherently impossible to overcome.
EDIT: What I mean with the last sentence warrants a little clarification, me thinks:
There are obviously problems in this domain, that are inherently impossible to overcome. For example, I can have all kind of weird pager layouts with a multitude of virtual desktops, yet mapping it onto platonic bodies or prismas is not always possible in a way to keep the neighborhood conditions of the grid layout alive.
The approach of kwin seems to be a sensible middle ground, e.g. distinguishing between the cube as a method to iterate over random virtual desktops or as a method to animate the switch between two distinct virtual desktops.
The latter is easier to keep consistent with the “spatial” layout of virtual desktops
regards
Edited 2009-04-05 09:33 UTC
Sliding is another good method. I just took the Cube as an example because it is such a trademark Compiz effect. These days, I don’t use the Cube all that much anymore, and I instead prefer the desktop wall.
The point is not to prove the superiority of the Cube; the point is to make clear that compositing technology can make existing concepts more tangible and easier to use.
One of my gripes with desktop effects is that they take the immense power of the 3d section of the video card, and use it to… make things take longer. And where there might be some training benefits to some of it… once the user understands what is happening (he switched desktops) the effect has served its purpose and becomes a useless time waster.
At least the “slide in” effect is fast and light weight.
Personally, I’d prefer just the speed increases of compositing without most of the effects. Snappy, snappy, snappy is where it’s at.
Edited 2009-04-05 13:52 UTC
Dwm was a big disappointment for me, after all these years the one small detail that annoys me the most is the occasional Windows^A(R) Desktop Icon Redraw^A(c). I really expected the buffered 3d accelerated desktop would change that.
I think wobbly windows eases my interaction with the desktop by making the windows more alive. I more or less hate desktops without it nowadays.
The wobbly windows and maximise/minimise effects aren’t just for show. They provide visual feedback on your actions. The coolness factor is definitely there, however.
For a good explanation, see this page. It is dated, but outlines many of the benefits of the effects:
http://www.beryl-project.org/features.php
I found my first compositing software by searching for 3D Flip. So, I owe it to Vista.
Immediately upon getting home, downloaded and installed Ubuntu 6.10 with Beryl, and have never gone back to static windows. My work computer is so lame by comparison.
gconftool-2 -s ‘/apps/metacity/general/compositing_manager’ –type bool true
Is it possible to offer a PDF file with all of the articles in it? Would be nice for reference, study, reading on the train, things like that.
Thanks for listening.
The one most important thing I really love about compiz is the real-time desktop zoom.
It might not be the most difficult feature, the most fancy and it might even be possible without a full compositing desktop, but I feel it’s one of the most useful.
It’s useful for disabilities and it’s useful because it places the zoom function on the level it should. If you want to view a flash video up close (if it doesn’t have a full-screen toggle) you can, if you wan to zoom in on a graphic you can.
Or just to highlighting some parts of your colleague work/desktop without cluttering it without stuff.
This all without zooming in onto a static screenshot.