Matchbox Window Manager II README. ====== Intro === Matchbox Window Manager II is a complete rewrite of the original m-w-m. It is in early stages of development. Plans/Aims Overview === o Manage windows in a restricted stack PDA style just like the original m-w-m. o Be small, fast, dependency light, flexible just like the original m-w-m. o Dont use libmb (XRender can be used for basic image compositing, performance issues should be able to be addressed via clever caching) o Be very modular in nature using a simple object system. m-w-m-2 should consist of core and optional building blocks which can be put togeather in various ways to form a window manager for a specific embedded UI (with varying constraints). The object system should provide this rather than being dependant on #ifdefs to add specific behaviour for a specific platform/UI. o Form a Much cleaner and manageable code base. o Use Xlib on XCB (or options xlibint.h) for more async prop calls. o *Optional* support for glib mainloop and GTK. o Support various themeing/decoration engines. o Better support compositing. Design === m-w-m-2 source code is split into various components as follows; - src/core Contains the core code and classes for providing window management. Ideally all objects should be overideable with an alternate implimentation and policy. TODO: Objectify things like the wm core and layout engine. Window Decorations / Buttons. Support EWMH. - src/client-types Contains sub classes of the cores 'client' type to implement handling of various window types (eg app windows, dialogs, panels). Each type sets layout and stacking as to how to wish to be managed (eg the core knows nothing about what a 'dialog' is, just the hints its provides). TODO: Basically pad this out more. - src/theme-engines Implementations of various theme engines. TODO: lots - src/managers The 'meat' which pulls the above togeather to form a window manager for a particular platform. Currently just a 'simple' implentation exists, but in the future others could exists like matchbox-window-manager-maemo for example. TODO: lots In the future other sub directorys could be 'composite', 'GTK' etc.. Notes == It could be worth (optionally) building everything (except managers) as a lib so out of tree WM's could be built.