Wandering Thoughts archives


In practice, there are two types of window managers in modern X

As part of its nominal mantra of "mechanism, not policy", the X Window System uses a user provided window manager. As far as most X programs are concerned, all window managers are supposed to be equal (assuming that they implement some standards for interoperability, such as EWMH and ICCM). The various Unix desktops (GNOME, KDE, etc) have some extra stuff between their own programs and their own desktop window manager, but theoretically all 'foreign' window managers are about the same.

Unfortunately, this is not the practical reality in modern X. In practice the world of window manager environments has split into two types, one of which is not equal to the other. There are compositing window manager environments, which are found in pretty much every significant X desktop, and also non-compositing window managers. Many stand alone X window managers, such as fvwm, are non-compositing, as you can see in Wikipedia's comparison of X window managers.

(I talk about 'environments' here instead of window managers because to some extent you can add compositing to a non-compositing window manager with a stand alone compositor like xcompmgr or picom. Generally this has various issues unless you go out of your way to set things up carefully, so my impression is that very few people use a non-compositing window manager along side a stand alone compositor to build a DIY compositing window manager environment.)

Since all of the significant X desktop environments use compositing, it's become the main and default X environment. A non-compositing environment is increasingly weird, old-fashioned, and uncommon, something that developers have to go out of their way to remember exists. In theory, people writing X programs should know that compositors are optional and make sure their programs still work without one. In practice, we already know how well programmers deal with uncommon environments in general, so you can predict what happens.

You can still use a non-compositing window manager environment, and I do every day. But you can expect to find glitches and problems every so often, because the non-compositing world is the lesser world. I suspect that there will be more over time for various reasons, and someday I wouldn't be surprised to hear even major programs like Firefox say 'we don't officially support non-compositing X environments any more, if it breaks it's your problem'.

(If you're in such a non-compositing window manager environment, it can be useful to temporarily start up a stand alone compositor along side your window manager to see if that makes some otherwise inexplicable problem go away. If nothing else, you can add some more details to your bug report.)

unix/XWindowManagersTwoTypes written at 22:59:04; Add Comment

Page tools: See As Normal.
Login: Password:
Atom Syndication: Recent Pages, Recent Comments.

This dinky wiki is brought to you by the Insane Hackers Guild, Python sub-branch.