Nuxified

FOSS technologies explained

  • Useful Articles
  • Blogs
  • Images
  • Tips
  • Archives
You are here: Home / An overview of modern fancy UNIX desktop systems

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.

You can discuss desktops and GUI’s here

Learn Unix

I run Unix Tutorial website and help anyone interested to pick up Unix skills. If you have questions or just want to share your ideas – please join the Unix Tutorial on Facebook.

Tech Stack Solutions

Tech Stack Solutions is my company that provides Unix support. Sign up or simply get in touch to find out how I can help!

Search this Website

You May Also Like

Recent Posts

  • Advice on using SUDO
  • FFmpeg 4.0
  • KDE Plasma 5.9.0 Release
  • How to Install Ubuntu Linux without a DVD or USB
  • How to Securely Save All Your Passwords with Keepass
  • 9 Signs You Should Use Linux on Your Computer
  • The Easiest Way to Optimize Your MySQL Database Performance
  • Setting up a Linux Web Development Environment in Windows
  • Hunting Down Disk Space Hogs on Linux Command Line
  • 6 Simple Android Apps for Monitoring and Managing Your Linux Server

Archives

Categories

  • Community Blogs
  • Images and Screenshots
  • News
  • Technical Topics
  • Useful Articles

Basic Unix Commands

Basic Unix Commands
  • ls command
  • mkdir command
  • man command in unix
  • cd command - change directory
  • uname command

Advanced Unix Commands

Advanced Unix Commands
  • ln command - symlinks
  • tune2fs unix command - filesystem parameters
  • du command - disk usage
  • lsb_release command
  • find unix command

Unix Reference

Unix Reference
  • SSH port forwarding
  • unix commands
  • visudo tutorial
  • mtime unix
  • lrwxrwxrwx
  • Unix Tutorial digest

Unix Books

Unix Tutorials

Unix How-Tos
  • check raspbian version
  • autostart in KVM
  • List files in Ubuntu package
  • check CentOS version
  • create bootable USB in MacOS
  • Useful Articles
  • Blogs
  • Images
  • Tips
  • Archives

Copyright © 2023 · Education Pro Theme on Genesis Framework · WordPress · Log in