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