Window Management

From Sfvlug

(Difference between revisions)
Line 72: Line 72:
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.
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
+
*aewm
-
awesome
+
*awesome
-
Blackbox
+
*Blackbox
-
edewm
+
*edewm
-
Enlightenment e16
+
*Enlightenment e16
-
fwm (via a plugin)
+
*fwm (via a plugin)
-
fvwm (via a plugin)
+
*fvwm (via a plugin)
-
interfacewm
+
*interfacewm
-
kwin
+
*kwin
-
matchbox
+
*matchbox
-
metacity
+
*metacity
-
openbox
+
*openbox
-
Sawfish (not completely)
+
*Sawfish (not completely)
-
wmii
+
*wmii
-
xmonad (needs to be turned on in the config)
+
*xmonad (needs to be turned on in the config)
===ICCCM Compliant Window Managers===
===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.
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
+
*aewm - basic implementation
-
alloywm - partial compliance
+
*alloywm - partial compliance
-
awesome
+
*awesome
-
blackbox - Versions 0.65 to versions 0.70
+
*blackbox - Versions 0.65 to versions 0.70
-
dwm - can be configured for compliance
+
*dwm - can be configured for compliance
-
enlightenment (window manager)
+
*enlightenment (window manager)
-
evilwm - partial compliance
+
*evilwm - partial compliance
-
fvwm
+
*fvwm
-
icewm
+
*icewm
-
kwin
+
*kwin
-
metacity
+
*metacity
-
musca
+
*musca
-
mutter
+
*mutter
-
openbox
+
*openbox
-
wmfs
+
*wmfs
-
xfwm
+
*xfwm
-
xmonad
+
*xmonad
===arbitrary list of window managers===
===arbitrary list of window managers===

Revision as of 19:52, 16 September 2010

Contents

SFVLUG Window Management Project

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 experience level.

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.

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.

Here are some resources with information on 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.

Comparison of X Window System desktop environments a Wikipedia article

Comparison of X window managers a chart comparing features

Window Managers for X an independent guide by Matt Chapman with help from the community

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

Arch Linux wiki article chart and text comparing just the tiling window managers

Fvwm and Session Management a Linuxgazette article circa 2004 about session management in general and Fvwm specifically

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.

X Window System

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

X Window System Wikipedia Article Includes technical and political history. You might want to read this before heading to the XFree86 or X.org sites.

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.


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.

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)

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

arbitrary 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.

Currently this list is displayed with no delimiter other than whitespace but in the Wikimedia source code each wm is displayed as a new line delimited list. I started this list with those wms at Wikipedia'x X Window Manager article. I/we can add to, organize and arrange this list as we go. --Miasma 23:54, 15 September 2010 (UTC)



2wm 3dwm 4Dwm 5Dwm (derived from mwm, true SGI look and feel) 9wm [1] (clone of the original windowing system of Plan 9 from Bell Labs|Plan 9) aegis (window manager) aewm [2] aewm++ AfterStep ahwm alloywm alptwm amaterus amiwm [3] 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 [4] evilwm Enlightenment (window manager)|Enlightenment EvilPoison [5] (a fork of evilwm with Ratpoison-like keybindings) Fluxbox (lightweight, based on Blackbox) FVWM (a virtual window manager, derived from twm) FVWM95 hackedbox [6] 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 [7] Matchbox (window manager)|Matchbox [8] 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 [9] 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 [10] Oroborus PekWM PLWM PWM (window manager)|PWM Qvwm (Windows 95/98 look-alike) [11] (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 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 [12] 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

Personal tools