Skip to main content
Welcome guest. | Register | Login | Post

An overview of modern fancy UNIX desktop systems

In the last few months, there has been a lot of talk about Xgl, compiz, AIGLX et cetera. It seems that "Xgl" has become a synonym for fancy desktop on Linux - but nobody seems to talk about the alternatives or how it all works. I have had a little look into this and am going to summarize it for y'all. I will explain where the following come from and how they work:
  • Xglx
  • Xegl
  • Luminocity
  • AIGLX
But first, I'll start with a proper introduction: UNIX graphical user interfaces (GUI) have traditionally used something called the X window system, which originated at MIT in 1984 and has been using the same protocol (X11) since 1987. X11 gives us what we have come to expect from a GUI system, which is essentially drawing rectangular windows onto a screen. Over the years many extensions have been added to X11 to allow things like non-rectangular windows and accelerated display of videos and three-dimensional graphics (like many games now use). One of the latest extensions is called Composite, which allows rendering of windows offscreen buffer, allowing an application (called a composite manager) to do the actual drawing. This allows effects like drop shadows and true transparency. All of the presented systems aim to enrich the possibilities of Composite by somehow integrating OpenGL, the system used for three-dimensional drawing, to accelerate existing effects and add new ones like wobbly windows and animated workspace switching. However, the ways they do this varies.

Xglx

Xglx, more commonly known as just Xgl, is a complete X11 server using GLX (X11+OpenGL) for communicating with the hardware, like a driver. This means that you need 2 X servers running at once whenever you want Xglx - this created some overhead. Also, the indirectness makes it difficult to integrate special features of graphics cards and direct rendering (fast). For special effects, Xgl relies on an external composite and window manager, the most common today being compiz.

Xegl

Xegl is closely related to Xglx, with the major difference in choice of driver. While Xglx relies on GLX, and thus a separate traditional X server, Xegl uses EGL (embedded openGL), a kernel-level OpenGL API. Xegl is little known and almost not used or developed currently since only very few graphics card drivers support EGL. Xegl shares much the same problems as Xglx: by relying fully on OpenGL, it neglects special features a graphics card might have (e.g.: Multihead support, special shader APIs).
For more information about Xglx and Xegl see wikipedia and the openSUSE wiki.

Luminocity

Luminocity was a testbed of Fedora and GNOME developers for new special effects not yet ready for Metacity. It relies on a traditional X server to provide an OpenGL API and on the nested X server Xfake for the applications to connect to. Luminocity itself is a Window and Composite manager that draws the Windows from the Xfake server into a window (often fullscreen) on the traditional server via OpenGL, providing effects like wobbly windows or transparency that compiz manages under Xgl (=Xglx/Xegl).
For more information about Luminocity see GNOME Live!.

AIGLX

AIGLX stands for "Accelerated Indirect GLX". It is an extension to the core X server developed mainly by the Fedora team providing Xgl-like functionality. It eliminated the extra X server needed with Xglx, saving development effort and allowing the integration of card-specific features as always. Like Xgl, it relies on an external application for effects. Mostly, this is a version of Metacity including code originally from Luminocity. Compiz can also be used on AIGLX and Metacity can be used on Xgl due to mostly compatible APIs. The main "problem" for AIGLX is that it requires support at driver level, which currently is only available in free drivers. However, it is known that NVIDIA is actively developing full AIGLX support in their proprietary drivers.
For more information about AIGLX see the Fedora Project Wiki.

Conclusion

Most Linux distributions and users have embraced Xglx and compiz, owing to the fact that it works right now with any GL-capable driver and it was, contrary to the similar Luminocity, well publicised (by Novell). Only few, most notably NVIDIA and Red Hat/Fedora, support AIGLX. I personally think that AIGLX is the right path - but Xglx remains the only viable option for most at present and was good for some short-term publicity.



Comments

You missed an important one!

 

If you haven't already, check out Enlightenment...a window manager which has the stated aim of bringing the look and feel of Bladerunner to the desktop.

Check out:

http://enlightenment.org

and the live distro:

http://ELiveCD.org

ttyl
Farrell

Oh regarding hardware

Oh regarding hardware requirements Enlightenment beats the pants of all others. Smiling And it's modern, fancy, fits the bill here, so yeah. Smiling

Still though, it's a nice and simple overview. Nice job!

elive

 

I am running elive, and it rules. I've also tried compiz/xgl on ubuntu dapper and it sucked - frequent crashes, etc.

what about glucose?

 

recently featured on digg and posted to the freedesktop.org mailing list was the announcement of glucose.

http://lists.freedesktop.org/archives/xorg/2006-August/017527.html

i'm no developer, but it sounds like glucose is bringing AIGLX's features to X without requiring special driver support. i think we'll be hearing more about it in the future.

Too short

 

Thanks for the summary, but alas, I don't get it. Can you add pointers to docs or add clarification?

"Xglx, more commonly known as just Xgl, is a complete X11 server"

What do you mean by complete? in which case would a X server be incomplete?

"using GLX (X11+OpenGL) for communicating with the hardware, like a driver"

Do you mean that there is no more need for a driver with XGL?

"This means that you need 2 X servers running at once whenever you want Xglx"

I don't get why it means that I need 2 X servers, and I don't get why I would two of them. Why can't the X server speak directly OpenGL to the card sometime, and speak to the driver for some others operations?

Cheers,

enlightment looks ugly

 

enlightment looks ugly compared to aqua.

What craches? I am also

 

What craches? I am also running compiz/xgl on ubuntu and didn't have a single crash in a month. The major problem that I had with Xgl is that it flickers windows that use XVideo, liek VLC, Totem.

Gah, people grow up. I have

Gah, people grow up. I have had to delete 2 posts because of imaturity.
Maybe this should be either, locked or no anonamous posts?

glucose looks interesting.

glucose looks interesting. Thanks for the link. (I admit I skipped the prepartion part on this piece)

explanation on 2 servers:

xglx model:
   device <====[driver]====> X server 1 <====[GLX]====> Xgl server <====> apps
tradiational model (use in i.e. AIGLX):
   device <====[driver]====> X server <==== apps

E17 does look nice. however, if you re-read the introduction, you will see that all these systems have something in common that E17 has not. These systems attemps to beautify and accelerate the whole desktop; E17 (if I understand correctly)

and - yes, references would be a good idea. (see digg.com)

Windows versus windows

 

Your use of windows using the capital 'W' confuses the issue when you're talking about drawing windows on a desktop. The word Windows refers to a Microsoft operating system while windows refers to the objects drawn by a window manager.

aye right...

Anonymous wrote:

Your use of windows using the capital 'W' confuses the issue when you're talking about drawing windows on a desktop. The word Windows refers to a Microsoft operating system while windows refers to the objects drawn by a window manager.

What a stupid issue. It doesnt make me think of MS Windows Operating System atall...
Is your brother called Billy Gates?

screenshots ?

 

Whats the point of talking about display and desktop tech without showing some screenshots ?

Windows versus Microsoft Windows.

 

Screw that. The X Window System has been around for a very long time. the WORDS "Microsoft Windows" refer to a Microsoft operating system.

AndrewB wrote: What a

AndrewB wrote:

What a stupid issue. It doesnt make me think of MS Windows Operating System atall...
Is your brother called Billy Gates?

Hey man, he has a valid point there. When talking about windows (as in window managers) and Windows (as in an OS), but not making a distinction of capitalization it can be confusing. Eye

Amen to AIGLX

 

I agree with supporting AIGLX over XGL because of the approach it takes, X.org is a tried and true X11 implementation, wheras XGL is a completely new Xserver. AIGLX will work by ADDING the functionality to the existing X servers, therefore keeping the good, well tested code, and simply adding new code, whereas XGL replaces EVERYTHING with new untested(I'm sure Novell had it tested, but it can't compare to years of being used by end users) code paths.

Mandriva supports AIXGL

 

I'm running cooker right now at work with it on an intel card and it works very well. I'm waiting for Nvidia support so I can run it at home, as well. Hopefully soon...

Wow, Ugly

 

Enlightenment looks like a pre-OSX build, Raphsody that Apple showed off 8+ years ago. It's ugly as hell, how could I ever get a normal person to use something with terrible UI like that? Windows and OS X exist because they have CONSISTENT UIs (for the most part) I want a linux build with a consistant GOOD UI. Not one developed by geeks but one influnenced by a UI expert.

Why are Mac users talking?

 

Its strange to see the few Mac posters in here. Of course it doesn't look as good as Aqua... everyone doesn't wear Apple-Goggles like you.

NOTE: Apple-goggles tend to highlight everything that isn't made by apple as an error in manufacturing/design.

To the Mac trolls: this has nothing to do with Mac's... go away... and take your bigotry with you.

It's perfectly possible to

It's perfectly possible to make even enlightenment, which indeed does have a separate GUI engine, have consistent UI. If you use mostly GTK applications then you'd probably want to use qtcurve on KDE apps to make them look very similar or same as GTK apps. Just choose the same qtcurve theme as the GTK theme you use.

Enlightenment mostly does window management so, aside from its special configuration programs and panels, it will pretty much only be visible in window borders and bars. And even enlightenment has themes so if you don't like gold and would like to choose something more consistent with the theme of your programs you can change that.

In any case, enligthenment is not the only GNU/Linux WM. Most of others such as GNOME, KDE and Xfce use either QT or GTK toolkit and both have means of making them look consistent within each other. That said yes GNU/Linux UI can be very consistent. Some distros have even made it that way by default.

 

I just so happen to use Enlightenment 17 as my desktop but does it follow the topic? I think not.
Here is an interesting page offering 3 desktop demos showing off some eye candy.

http://www.ehomeupgrade.com/entry/2915/linux_xglcompiz_graphics

Does it mean that one is better than the other? Not really. The best demo IMHO is the Linux demo but who's to say that OSX cannot do more than the OSX demo shows. The same is true of Vista. This wasn't a contest with the best demo possible submitted by a hardcore user of each OS. I think the point is that when it comes to eye candy "Linux can do that too". This article was a decent effort to enlighten us on some of the new technologies for Linux. Not Apple, not Windows. Thanks for the explaination.

Enlightenment?

 

... and Enlightenment DR17 is due out when? The end of time as we know it? Anyway, Enlightenment has nothing to do with this article, as has been pointed out...

Any live cd's of these systems?

 

Any live cd's of these systems?
Links?

Kororaa

Anonymous wrote:

Any live cd's of these systems?
Links?

I know about Kororaa which demonstrates XGL.

Project Looking Glass ...

 

ah, looking glass. LG3D

ah, looking glass. LG3D looks like a brute-force Xgl-like system that depends on proprietary software. I believe that this sort of effect should be possible with AIGLX in future.

To make it clear: the reason I did not consider Looking Glass when having a look around these systems is because it depends on proprietary software (sun's java)

Project Looking Glass is

Project Looking Glass is very good. There has been recent moves into the Opensource world for Java.

try again :D

 

well...its not even in alpha i think...e16 is released, e17 so