Window Management

From Sfvlug

(Difference between revisions)
Line 31: Line 31:
It should have easy and intuitive defaults that can be customized by the user without the need to reprogram any source code.
It should have easy and intuitive defaults that can be customized by the user without the need to reprogram any source code.
-
==Resources==
+
==Resources Existing Window Managers and Desktop Environments:===
-
===Existing Window Managers and Desktop Environments:===
 
-
Right now these resources are in no particular order, but until I get around to categorizing them and putting them in a better order myself please feel free to do so yourself.
 
-
 
-
*[http://en.wikipedia.org/wiki/Comparison_of_X_Window_System_desktop_environments Comparison of X Window System desktop environments] a Wikipedia article
 
-
 
-
*[http://en.wikipedia.org/wiki/Comparison_of_X_window_managers Comparison of X window managers] a chart comparing features
 
-
 
-
*[http://xwinman.org/ Window Managers for X] an independent guide by Matt Chapman with help from the community
 
-
 
-
*[http://ubuntuforums.org/showthread.php?t=126618 Ubuntu Forum] a 4 year old Ubuntu forum thread with community discussion
 
-
 
-
*[http://wiki.archlinux.org/index.php/Comparison_of_Tiling_Window_Managers Arch Linux wiki article] chart and text comparing just the tiling window managers
 
-
 
-
*[http://linuxgazette.net/100/adam.html Fvwm and Session Management] a Linuxgazette article circa 2004 about session management in general and Fvwm specifically
 
====Desktop Environments====
====Desktop Environments====
Line 60: Line 46:
*[http://www.lxde.org/ LXDE] a newcomer to desktop environments is lightweight and fast but is less mature and may not perform well on systems that have requirements outside the main stream, but this should improve with maturity. For old hardware this is probably worth a try before deciding on a feather weight window manager.
*[http://www.lxde.org/ LXDE] a newcomer to desktop environments is lightweight and fast but is less mature and may not perform well on systems that have requirements outside the main stream, but this should improve with maturity. For old hardware this is probably worth a try before deciding on a feather weight window manager.
-
===Python Stuff===
+
===Existing Window Managers===
-
*[http://en.wikipedia.org/wiki/PLWM PLWM] is the Pointless Window Manager as well as a Python package containing classes capable of use in rolling your own Pythonic window manager. Absolutely worth a look. It is currently still available as a Debian package. The [http://plwm.sourceforge.net/ PLWM] homepage at Sourceforge, has nothing much to see but there is a download for the source code and some long in the tooth documentation.
+
====Wikipedia's List of Window Managers====
-
 
+
-
*[http://pywm.sourceforge.net/ PyWM] is another Python based window manager, also getting long in the tooth but still alive. It is based on [http://flwm.sourceforge.net/ FLWM] which was in turn based on [http://www.all-day-breakfast.com/wm2/ wm2] which were extremely light weight window managers written in C++ with an aversion to customization.
+
-
 
+
-
*[http://code.google.com/p/partiwm/ Parti] is a tabbing, tiling window manager written in Python using GTK+. You should be careful if searching for it that Google doesn't change it to "party" so it helps to enclose it in quotes.
+
-
 
+
-
*[http://en.wikipedia.org/wiki/Xpra Xpra] written in Python allows for viewing remote X applications on their local machine, unlike VNC the applications are "rootless" and appear as individual windows inside your window manager and not contained in a single window. The project is hosted at [http://freshmeat.net/projects/xpra freshmeat.net].
+
-
 
+
-
*[http://openpeta.com/index.php/2010/08/an-awesome-alternate-python-docky-to-awn/ python-docky] is an enhanced application launcher, manager and dock for the Gnome desktop.
+
-
 
+
-
===ICCCM & EWMH===
+
-
The X server itself only specifies the mechanism for drawing windows and is not involved with implementation policy. To help create standards for implementation the ICCCM was created. The first version came out in 1989 and the second in 1994. It is considered to be very difficult to understand when it came out and as time went on some parts are no longer relevant. The EWMH was created in an attempt to clear up the difficulties with the ICCCM. If a window manager is compliant with EWMH it should also be compliant with the ICCCM. Both the ICCCM and EWMH operate on the level of widget toolkits and desktop environments are most application developers just assume that the widget toolkit will take care of those details for them.
+
-
 
+
-
 
+
-
===ICCCM Compliant Window Managers===
+
-
This list is also from Wikipedia on their [http://en.wikipedia.org/wiki/Inter-Client_Communication_Conventions_Manual Inter-Client Communication Conventions Manual] article and may not be up to date or completely accurate.
+
-
 
+
-
*aewm - basic implementation
+
-
*alloywm - partial compliance
+
-
*awesome
+
-
*blackbox - Versions 0.65 to versions 0.70
+
-
*dwm - can be configured for compliance
+
-
*enlightenment (window manager)
+
-
*evilwm - partial compliance
+
-
*fvwm
+
-
*icewm
+
-
*kwin
+
-
*metacity
+
-
*musca
+
-
*mutter
+
-
*openbox
+
-
*wmfs
+
-
*xfwm
+
-
*xmonad
+
-
 
+
-
===EWMH Compliant Window Managers===
+
-
This list is from Wikipedia's [http://en.wikipedia.org/wiki/Extended_Window_Manager_Hints Extended Window Manager Hints] article and may not be up to date or completely accurate.
+
-
 
+
-
*aewm
+
-
*awesome
+
-
*Blackbox
+
-
*edewm
+
-
*Enlightenment e16
+
-
*fwm (via a plugin)
+
-
*fvwm (via a plugin)
+
-
*interfacewm
+
-
*kwin
+
-
*matchbox
+
-
*metacity
+
-
*openbox
+
-
*Sawfish (not completely)
+
-
*wmii
+
-
*xmonad (needs to be turned on in the config)
+
-
 
+
-
 
+
-
===Wikipedia's List of Window Managers===
+
This is just a list of known window managers that may or may not be currently available. At some point soon I'd like for us to start sorting them into piles of those worth a look and those that aren't. Since this can be very subjective I don't want to include or exclude any of these based just on my impression. There are so many of them that it would be very difficult to make a thorough and fair evaluation of all of them, but this is not intended to be a review of window managers, it is to give us an indication of what features to incorporate into our own project.  
This is just a list of known window managers that may or may not be currently available. At some point soon I'd like for us to start sorting them into piles of those worth a look and those that aren't. Since this can be very subjective I don't want to include or exclude any of these based just on my impression. There are so many of them that it would be very difficult to make a thorough and fair evaluation of all of them, but this is not intended to be a review of window managers, it is to give us an indication of what features to incorporate into our own project.  
Line 199: Line 130:
*xwm
*xwm
-
===Debian/Ubuntu WM Package List===
+
====Debian/Ubuntu WM Package List====
This list was obtained by using apt-cache search and grep for window and manager. Some packages in this list are forks, variations or different versions of what are basically the same program. The comments are those returned from Apt. At some point we are probably going to want to combine the different lists into a spreadsheet and/or chart.
This list was obtained by using apt-cache search and grep for window and manager. Some packages in this list are forks, variations or different versions of what are basically the same program. The comments are those returned from Apt. At some point we are probably going to want to combine the different lists into a spreadsheet and/or chart.
Line 264: Line 195:
*xmonad - A lightweight X11 window manager
*xmonad - A lightweight X11 window manager
-
[[wmlists]]
+
[[wmlists]] Place for compiling lists of window manager capabilities for comparison
==X and Other Resources==
==X and Other Resources==
Line 279: Line 210:
*[http://www.freedesktop.org/wiki/Home freedesktop.org] In their own words, "freedesktop.org is open source / open discussion software projects working on interoperability and shared technology for X Window System desktops."  
*[http://www.freedesktop.org/wiki/Home freedesktop.org] In their own words, "freedesktop.org is open source / open discussion software projects working on interoperability and shared technology for X Window System desktops."  
They make particular note that these are specifications and *not* standards. A good place to go for info on EWMH (Extended Window Manager Hints) and ICCCM (Inter-Client Communication Conventions Manual) [http://www.freedesktop.org/wiki/Software Software hosted on or related to freedesktop.org] Open to any on topic projects. [http://www.freedesktop.org/wiki/Specifications Specifications page at freedesktop], it is the place to go to find info on [http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html EWMH] (Extended Window Manager Hints) and [http://tronche.com/gui/x/icccm/ ICCCM] (Inter-Client Communication Conventions Manual) [http://www.freedesktop.org/wiki/Software Software hosted on or related to freedesktop.org] Open to any on topic projects.
They make particular note that these are specifications and *not* standards. A good place to go for info on EWMH (Extended Window Manager Hints) and ICCCM (Inter-Client Communication Conventions Manual) [http://www.freedesktop.org/wiki/Software Software hosted on or related to freedesktop.org] Open to any on topic projects. [http://www.freedesktop.org/wiki/Specifications Specifications page at freedesktop], it is the place to go to find info on [http://standards.freedesktop.org/wm-spec/wm-spec-1.3.html EWMH] (Extended Window Manager Hints) and [http://tronche.com/gui/x/icccm/ ICCCM] (Inter-Client Communication Conventions Manual) [http://www.freedesktop.org/wiki/Software Software hosted on or related to freedesktop.org] Open to any on topic projects.
 +
 +
 +
Right now these resources are in no particular order, but until I get around to categorizing them and putting them in a better order myself please feel free to do so yourself.
 +
 +
*[http://en.wikipedia.org/wiki/Comparison_of_X_Window_System_desktop_environments Comparison of X Window System desktop environments] a Wikipedia article
 +
 +
*[http://en.wikipedia.org/wiki/Comparison_of_X_window_managers Comparison of X window managers] a chart comparing features
 +
 +
*[http://xwinman.org/ Window Managers for X] an independent guide by Matt Chapman with help from the community
 +
 +
*[http://ubuntuforums.org/showthread.php?t=126618 Ubuntu Forum] a 4 year old Ubuntu forum thread with community discussion
 +
 +
*[http://wiki.archlinux.org/index.php/Comparison_of_Tiling_Window_Managers Arch Linux wiki article] chart and text comparing just the tiling window managers
 +
 +
*[http://linuxgazette.net/100/adam.html Fvwm and Session Management] a Linuxgazette article circa 2004 about session management in general and Fvwm specifically
 +
 +
 +
====ICCCM & EWMH====
 +
The X server itself only specifies the mechanism for drawing windows and is not involved with implementation policy. To help create standards for implementation the ICCCM was created. The first version came out in 1989 and the second in 1994. It is considered to be very difficult to understand when it came out and as time went on some parts are no longer relevant. The EWMH was created in an attempt to clear up the difficulties with the ICCCM. If a window manager is compliant with EWMH it should also be compliant with the ICCCM. Both the ICCCM and EWMH operate on the level of widget toolkits and desktop environments are most application developers just assume that the widget toolkit will take care of those details for them.
 +
 +
 +
====ICCCM Compliant Window Managers====
 +
This list is also from Wikipedia on their [http://en.wikipedia.org/wiki/Inter-Client_Communication_Conventions_Manual Inter-Client Communication Conventions Manual] article and may not be up to date or completely accurate.
 +
 +
*aewm - basic implementation
 +
*alloywm - partial compliance
 +
*awesome
 +
*blackbox - Versions 0.65 to versions 0.70
 +
*dwm - can be configured for compliance
 +
*enlightenment (window manager)
 +
*evilwm - partial compliance
 +
*fvwm
 +
*icewm
 +
*kwin
 +
*metacity
 +
*musca
 +
*mutter
 +
*openbox
 +
*wmfs
 +
*xfwm
 +
*xmonad
 +
 +
====EWMH Compliant Window Managers====
 +
This list is from Wikipedia's [http://en.wikipedia.org/wiki/Extended_Window_Manager_Hints Extended Window Manager Hints] article and may not be up to date or completely accurate.
 +
 +
*aewm
 +
*awesome
 +
*Blackbox
 +
*edewm
 +
*Enlightenment e16
 +
*fwm (via a plugin)
 +
*fvwm (via a plugin)
 +
*interfacewm
 +
*kwin
 +
*matchbox
 +
*metacity
 +
*openbox
 +
*Sawfish (not completely)
 +
*wmii
 +
*xmonad (needs to be turned on in the config)
 +
 +
===Python Stuff===
 +
 +
*[http://en.wikipedia.org/wiki/PLWM PLWM] is the Pointless Window Manager as well as a Python package containing classes capable of use in rolling your own Pythonic window manager. Absolutely worth a look. It is currently still available as a Debian package. The [http://plwm.sourceforge.net/ PLWM] homepage at Sourceforge, has nothing much to see but there is a download for the source code and some long in the tooth documentation.
 +
 +
*[http://pywm.sourceforge.net/ PyWM] is another Python based window manager, also getting long in the tooth but still alive. It is based on [http://flwm.sourceforge.net/ FLWM] which was in turn based on [http://www.all-day-breakfast.com/wm2/ wm2] which were extremely light weight window managers written in C++ with an aversion to customization.
 +
 +
*[http://code.google.com/p/partiwm/ Parti] is a tabbing, tiling window manager written in Python using GTK+. You should be careful if searching for it that Google doesn't change it to "party" so it helps to enclose it in quotes.
 +
 +
*[http://en.wikipedia.org/wiki/Xpra Xpra] written in Python allows for viewing remote X applications on their local machine, unlike VNC the applications are "rootless" and appear as individual windows inside your window manager and not contained in a single window. The project is hosted at [http://freshmeat.net/projects/xpra freshmeat.net].
 +
 +
*[http://openpeta.com/index.php/2010/08/an-awesome-alternate-python-docky-to-awn/ python-docky] is an enhanced application launcher, manager and dock for the Gnome desktop.

Revision as of 23:51, 20 September 2010

Contents

SFVLUG Window Management Project Introduction

This project is still at a very early stage so nothing is yet written in stone and your input is welcome no matter what your level of experience.

<disclaimer> Be warned, I am not by any means an expert in window managers, programming or much of anything for that matter, I am merely a dabbler. I'm doing my best to put together a good resource page but for me it is a learn as I go kind of thing and I can't promise anything. If you decide to start playing around with window managers on a system with data that is important to you, don't do it, and if you must make sure any data you ever hope to see again is safely backed up first. Most of these window manager projects are to be considered experimental and could easily take your arm off at the elbow or worse if you even think of installing them based on any information you have found here. </ disclaimer>

Even though I am doing most of the groundwork here in getting this started it is not my project, this is a SFVLUG project which means it can be your project too. You don't even need to be living in Southern California to participate, our membership consists of anyone interested in free open source software and wants to hang out with other like minded folks. You don't even need to write one single line of code to become involved, contributions can come in many other forms. If you do live in the Southern California area we hope to see you at one of our meetings. Check the SFVLUG website for up to date announcements for time and venue. --Miasma 02:53, 17 September 2010 (UTC)


Q: Why a project on window managers, aren't there already a whole lot of window managers already available?

A: While there are already many window managers already available we have found all of them lacking in one way or another. Finding the right window manager for your needs is a little like the story, Goldilocks and the Three Bears. Some are too big and some are too small. This project is an attempt to find the right balance between the two. The opening between the two extremes provides an opportunity for exploration in an interesting area where the ways that people do things meets the capabilities and limitations of the machine.

Caution: If you are going to try out some of the minimalist window managers be sure to read the
man page or other documentation before firing it up. Many of them don't include toolbars or menus and may
use unfamiliar key and/or mouse bindings. You may even want to try them out on a spare machine that you
can afford to have out of commission for a while. It helps to have a print out of the instructions when
faced with a blank screen and nothing to click on and no command line is sight.

Here are some initial guidelines currently under consideration:

The project is to be primarily written in Python 2.x but with future use of Python 3.x to be used in the future.

It is currently proposed to be based initially on the PyWM window manager.

It is to be positioned somewhere between the huge KDE and Gnome desktop environments and the extremely light weight window managers like wm2 or ratpoison.

It should be easy to use with input from both a keyboard and/or a mouse.

It should have easy and intuitive defaults that can be customized by the user without the need to reprogram any source code.

Resources Existing Window Managers and Desktop Environments:=

Desktop Environments

More than just window managers these systems also provide tools and applications in a unified environment.

  • KDE 4.x Desktop Environment Currently both the most advanced and the most broken. A good experience with KDE 4 requires capable hardware to run on.
  • Gnome 2.x Desktop Environment Currently more stable but less features than KDE 4 but still demands a fair amount of horsepower for decent performance.
  • XFCE 4.x Desktop Environment The lightweight member of the big 3 desktop environments strives to provide compatibility to Gnome and KDE while sticking closely to the Unix philosophy of modularity and re-usability. A better choice for older and less capable hardware but still requires more power than light weight window managers.
  • LXDE a newcomer to desktop environments is lightweight and fast but is less mature and may not perform well on systems that have requirements outside the main stream, but this should improve with maturity. For old hardware this is probably worth a try before deciding on a feather weight window manager.

Existing Window Managers

Wikipedia's List of Window Managers

This is just a list of known window managers that may or may not be currently available. At some point soon I'd like for us to start sorting them into piles of those worth a look and those that aren't. Since this can be very subjective I don't want to include or exclude any of these based just on my impression. There are so many of them that it would be very difficult to make a thorough and fair evaluation of all of them, but this is not intended to be a review of window managers, it is to give us an indication of what features to incorporate into our own project.

Please fee free to jump in and help check, add to and otherwise cleanup the list and the links.

  • 2wm
  • 3dwm
  • 4Dwm
  • 5Dwm (derived from mwm, true SGI look and feel)
  • 9wm 9wm link (clone of the original windowing system of Plan 9 from Bell Labs|Plan 9)
  • aegis (window manager)
  • aewm aewm link
  • aewm++
  • AfterStep
  • ahwm
  • alloywm
  • alptwm
  • amaterus
  • amiwm amiwm link Amiga Workbench (AmigaOS)|workbench unix clone.
  • anarchy (window manager)|anarchy
  • antiwm
  • asclassic
  • awesome (window manager)|awesome
  • awm
  • badwm
  • Beryl (window manager)|Beryl
  • Blackbox (minimalist)
  • bluetile
  • blwm
  • clfswm
  • Compiz
  • CTWM
  • cwm cwm link
  • evilwm
  • Enlightenment (window manager)|Enlightenment
  • EvilPoison EvilPoison link (a fork of evilwm with Ratpoison-like keybindings)
  • Fluxbox (lightweight, based on Blackbox)
  • FVWM (a virtual window manager, derived from twm)
  • FVWM95
  • hackedbox hackedbox link
  • HaZe
  • IceWM
  • Ion (window manager)|Ion (a tiling tabbed window manager designed with keyboard users in mind)
  • JWM (Joe's Window Manager)
  • Kahakai
  • KWin (originally called KWM, default for KDE)
  • luminocity (window manager) (experimentation in compositing)
  • Lightweight window manager|LWM LWM link
  • Matchbox (window manager)|Matchbox Matchbox link
  • Metacity (the current default for the GNOME desktop environment)
  • GNOME Shell|Mutter (GNOME Shell)
  • MWM (Motif (widget toolkit)|Motif Window Manager), Motif Window Manager
  • olwm (and olvwm olwm link with virtual desktops, OPEN LOOK window managers)
  • Openbox (based on Blackbox, default for the LXDE desktop environment)
  • Orion A nested (tiled or floating) window manager written in Scheme and scsh Orion link
  • Oroborus
  • PekWM
  • PLWM
  • PWM (window manager)|PWM
  • Qvwm (Windows 95/98 look-alike) Qvwm link (list of forks)
  • Ratpoison
  • Sawfish (window manager)|Sawfish (a past default for GNOME, originally called Sawmill)
  • Scwm (the Scheme constraints window manager)
  • SithWM evilwm-based, virtual window manager:de:SithWM|(german page)
  • Stumpwm A tiling window manager written in Lisp
  • swm (the original virtual desktop implementation)
  • Toy'd (HomePage GoogleProject Toy'd link a portable window manager for MS-Windows & UNIX / Linux platforms)
  • TrsWM
  • twm (default for the X Window System since version X11R4)
  • UWM (computing)|uwm
  • vtwm
  • Waimea Waimea link
  • WindowLab
  • Window Maker
  • wm2
  • wmii
  • wmx
  • Xfwm4 (a window manager for the Xfce desktop environment)
  • Xmonad
  • XPde|XPwm (for XPde, Windows XP Look alike) - now defunct
  • xwm

Debian/Ubuntu WM Package List

This list was obtained by using apt-cache search and grep for window and manager. Some packages in this list are forks, variations or different versions of what are basically the same program. The comments are those returned from Apt. At some point we are probably going to want to combine the different lists into a spreadsheet and/or chart.

  • 9wm - emulation of the Plan 9 window manager 8-1/2
  • aewm - a minimalist window manager for X11
  • aewm++ - minimal window manager written in C++
  • afterstep - window manager with the NEXTSTEP look and feel
  • amiwm - The Amiga look alike window manager
  • awesome - highly configurable, next generation framework window manager for X
  • blackbox - Window manager for X
  • compiz - OpenGL window and compositing manager
  • ctwm - Claude's Tab window manager
  • dvtm - Tiling window management for the console
  • dwm - dynamic window manager
  • dwm-tools - dynamic window manager (tools)
  • e16 - the Enlightenment Window Manager DR16
  • evilwm - a minimalist window manager for X11
  • fluxbox - Highly configurable and low resource X11 Window manager
  • flwm - Fast Light Window Manager
  • fvwm - F(?) Virtual Window Manager
  • fvwm1 - Old version of the F(?) Virtual Window Manager
  • i3 - metapackage (i3 window manager, screen locker, menu, statusbar)
  • i3-wm - an improved dynamic tiling window manager
  • icewm - wonderful Win95-OS/2-Motif-like window manager
  • icewm-experimental - wonderful Win95-OS/2-Motif-like window manager
  • icewm-lite - wonderful Win95-OS/2-Motif-like window manager
  • ion3 - tiling tabbed window manager designed for keyboard users
  • jwm - Very small lightweight pure X11 window manager with tray and menus
  • kwin - the KDE 4 window manager (KWin)
  • larswm - Lars Window Manager with tiled windows
  • lwm - Lightweight Window Manager
  • matchbox-window-manager - window manager for resource-limited systems
  • maximus - A window management tool
  • metacity - lightweight GTK+ window manager
  • miwm - minimalist window manager with virtual workspaces
  • mutter - lightweight GTK+ window manager
  • olvwm - OpenLook virtual window manager
  • olwm - Open Look Window Manager
  • openbox - standards compliant, fast, light-weight, extensible window manager
  • oroborus - A lightweight themeable windowmanager for X
  • parti - Parti window manager
  • pekwm - Fast & Light Window Manager
  • python-plwm - Pointless Window Manager - Python libraries for creating Window Managers
  • ratpoison - keyboard-only window manager
  • sapphire - A minimal but configurable X11R6 window manager
  • sawfish - a window manager for X11
  • scrotwm - dynamic tiling window manager
  • stumpwm - a Common Lisp window manager
  • sugar-session-0.88 - Sugar graphical shell - window manager
  • sugar-tools-0.88 - Sugar graphical shell - window manager
  • tinywm - tiny window manager
  • twm - Tab window manager
  • uwm - The ultimate window manager for UDE
  • vtwm - Virtual Tab Window Manager
  • w9wm - enhanced window manager based on 9wm
  • wdm - WINGs Display Manager - an xdm replacement with a WindowMaker look
  • windowlab - small and simple Amiga-like window manager
  • windows-el - window manager for GNU Emacs
  • wm2 - small, unconfigurable window manager
  • wmaker - NeXTSTEP-like window manager for X
  • wmii - lightweight tabbed and tiled X11 window manager, version 3
  • wmii2 - lightweight tabbed and tiled X11 window manager, version 2
  • xfwm4 - window manager of the Xfce project
  • xmonad - A lightweight X11 window manager

wmlists Place for compiling lists of window manager capabilities for comparison

X and Other Resources

X Window System

The layer close to the metal upon which most window management is built.

  • XFree86 Project Established in 1992 to provide UNIX windowing for Intel X86 architecture, replaced for most distributions a few years back in favor of X.org but still available.
  • X.org Foundation Relatively inactive fork of XFree86 until split in XFree86 brought it new life. Currently used by most current GNU/Linux distributions.
  • freedesktop.org In their own words, "freedesktop.org is open source / open discussion software projects working on interoperability and shared technology for X Window System desktops."

They make particular note that these are specifications and *not* standards. A good place to go for info on EWMH (Extended Window Manager Hints) and ICCCM (Inter-Client Communication Conventions Manual) Software hosted on or related to freedesktop.org Open to any on topic projects. Specifications page at freedesktop, it is the place to go to find info on EWMH (Extended Window Manager Hints) and ICCCM (Inter-Client Communication Conventions Manual) Software hosted on or related to freedesktop.org Open to any on topic projects.


Right now these resources are in no particular order, but until I get around to categorizing them and putting them in a better order myself please feel free to do so yourself.

  • Ubuntu Forum a 4 year old Ubuntu forum thread with community discussion


ICCCM & EWMH

The X server itself only specifies the mechanism for drawing windows and is not involved with implementation policy. To help create standards for implementation the ICCCM was created. The first version came out in 1989 and the second in 1994. It is considered to be very difficult to understand when it came out and as time went on some parts are no longer relevant. The EWMH was created in an attempt to clear up the difficulties with the ICCCM. If a window manager is compliant with EWMH it should also be compliant with the ICCCM. Both the ICCCM and EWMH operate on the level of widget toolkits and desktop environments are most application developers just assume that the widget toolkit will take care of those details for them.


ICCCM Compliant Window Managers

This list is also from Wikipedia on their Inter-Client Communication Conventions Manual article and may not be up to date or completely accurate.

  • aewm - basic implementation
  • alloywm - partial compliance
  • awesome
  • blackbox - Versions 0.65 to versions 0.70
  • dwm - can be configured for compliance
  • enlightenment (window manager)
  • evilwm - partial compliance
  • fvwm
  • icewm
  • kwin
  • metacity
  • musca
  • mutter
  • openbox
  • wmfs
  • xfwm
  • xmonad

EWMH Compliant Window Managers

This list is from Wikipedia's Extended Window Manager Hints article and may not be up to date or completely accurate.

  • aewm
  • awesome
  • Blackbox
  • edewm
  • Enlightenment e16
  • fwm (via a plugin)
  • fvwm (via a plugin)
  • interfacewm
  • kwin
  • matchbox
  • metacity
  • openbox
  • Sawfish (not completely)
  • wmii
  • xmonad (needs to be turned on in the config)

Python Stuff

  • PLWM is the Pointless Window Manager as well as a Python package containing classes capable of use in rolling your own Pythonic window manager. Absolutely worth a look. It is currently still available as a Debian package. The PLWM homepage at Sourceforge, has nothing much to see but there is a download for the source code and some long in the tooth documentation.
  • PyWM is another Python based window manager, also getting long in the tooth but still alive. It is based on FLWM which was in turn based on wm2 which were extremely light weight window managers written in C++ with an aversion to customization.
  • Parti is a tabbing, tiling window manager written in Python using GTK+. You should be careful if searching for it that Google doesn't change it to "party" so it helps to enclose it in quotes.
  • Xpra written in Python allows for viewing remote X applications on their local machine, unlike VNC the applications are "rootless" and appear as individual windows inside your window manager and not contained in a single window. The project is hosted at freshmeat.net.
  • python-docky is an enhanced application launcher, manager and dock for the Gnome desktop.
Personal tools