gpm: Default Handlers
3.5 Default Handlers
====================
In addition to console-specific clients, 'gpm' allows for
console-independent clients - those clients which handle events ignored
by conventional clients
Keyboard modifiers are used to multiplex the different clients on the
same console, and a default handler should specify a non-zero minimum
modifier set.
To summarize, events which get to the server can be delivered to the
following _clients_, in the order of decreasing priority:
1. The current client for the current console, if any.
2. The default handler, if any.
3. The builtin 'selection' mechanism.
A keyboard modifier which connected with a 'minMod' equal to the
"Control" modifier and a 'maxMod' of '~0' (all bits on), will then get
any event including the control key, if the application disregards it.
This means that if the foreground application gets only the "Meta"
key, control-mouse is sufficient to invoke the default handler. If the
application gets control-mouse but disregards "Meta", conversely,
meta-control-mouse will invoke the default handler, and meta-mouse will
be delivered to selection.
Both the 'minMod' and 'maxMod' fields are bitmasks, and their values
are bitwise or-ed and and-ed with the current modifier mask.
'gpm-root' is an example of default handler. It gets control-mouse
events by default, and reads user-specific configuration files in order
to draw menus on the background of your screen. gpm-root.