© 2004, Hyriand

The OmegaWM Goals
Goals:

Hmm.. Goals.. I dunno, we'll see.. For now: "create a window manager for the X11 windowing system that is ICCCM compliant". After that, I'll probably add FreeDesktop.org's WM specifications (stuff like desktops, window roles, etc).

Design:

OmegaWM is divided into several parts:
  • The 'core' WM
  • Theme engines
The core is divided into several elements as well:
  • 'main': Launch a thread running a WM for each available screen on a display
  • 'WM': A window manager that a single screen, it monitors important changes on the root window (new windows, etc) and directs what happens after such changes.
  • 'Child': A container which holds / manipulates / monitors 'child' windows. The actual application windows.
  • 'Frame': A container which holds (currently) one child. manipulations that come from the WM should be directed at this frame, and the frame will instruct its child what to do. The frame also communicates with the theme engine for the visual aspect.
  • Several helper classes that provide common functionality like an atom store, size properties (including min/max/base size and fixed size increments), a thread safe Xlib error mananger which trampolines X errors into the appriopriate function, and a generic window class that describes a window in X11.