If you absolutely must point to a single module and call it PLWM, then
you should direct your attention to
wmanager. It contains three
classes which implements the fundamental window managing and provides
the extension framework.
WindowManagerinstance manages the windows on a single display, which is provided as an argument to the constructor.
WindowManageralso drives the event handling loop.
WindowManagerinstance is created it will create a
Screeninstance for each physical screen (monitor) connected to the display. Normally, an X server only have one screen, but they can also be multiheaded, i.e. having more than one screen. Each screen has its own root window, and all windows are therefore local to a certain screen and cannot move between different screens.
Screeninstance managing the screen detects that a window has been created. All window operations by extensions should be done using methods on the
Clientinstance managing that window.
This gives us the following structure: A single
instance manages a certain display, by managing one or more
instances which in turn manages a number of
These classes have a number of publicly available attributes, listed in the sections below. Of course, all member attributes are available for you, but if you try to stick to the listed attributes and use the methods provided by the classes to manipulate windows your code will stand a better chance of working with future extensions.
The core classes also generates some events which can be useful for mixins. See section Core Events.
Go to the first, previous, next, last section, table of contents.