Go to the first, previous, next, last section, table of contents.

Core Classes

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.

This is the central window manager class. A WindowManager instance manages the windows on a single display, which is provided as an argument to the constructor. WindowManager also drives the event handling loop.
This class takes care of catching client windows so we can manage them. When a WindowManager instance is created it will create a Screen instance 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.
This class manages a single window. Instances are created when the Screen instance managing the screen detects that a window has been created. All window operations by extensions should be done using methods on the Client instance managing that window.

This gives us the following structure: A single WindowManager instance manages a certain display, by managing one or more Screen instances which in turn manages a number of Client instances.

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.