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