Man Linux: Main Page and Category List

NAME

       XkbGetKeyExplicitComponents  -  Obtain  the  explicit  components  (the
       explicit array) for a subset of the keys in a keyboard description

SYNOPSIS

       Status XkbGetKeyExplicitComponents (Display *dpy, unsigned  int  first,
              unsigned int num, XkbDescPtr xkb);

ARGUMENTS

       - dpy  connection to server

       - first
              keycode of first key to fetch

       - num  number of keys for which to get explicit info

       - xkb  Xkb description in which to put results

DESCRIPTION

       Whenever a client remaps the keyboard using core protocol requests, Xkb
       examines the map to determine likely default values for the  components
       that  cannot  be  specified  using the core protocol (see Core Keyboard
       Mapping to Xkb Keyboard Mapping Transformation for more information  on
       how Xkb chooses the default values).

       DO  THE  FOUR  PAGES  OF "CORE KEYBOARD MAPPING TO XKB KEYBOARD MAPPING
       TRANSFORMATION" NEED TO BE ADDED HERE?

       This automatic remapping might replace definitions explicitly requested
       by  an application, so the Xkb keyboard description defines an explicit
       components mask for each key. Any aspects of  the  automatic  remapping
       listed in the explicit components mask for a key are not changed by the
       automatic keyboard mapping.

       The explicit components masks are held in the  explicit  field  of  the
       server  map,  which  is an array indexed by keycode. Each entry in this
       array is a mask that is a bitwise inclusive OR of the values  shown  in
       Table 1.

                      Table 1 Explicit Component Masks
       ---------------------------------------------------------------
       Bit in Explicit Mask   Value    Protects Against
       ---------------------------------------------------------------
       ExplicitKeyType1       (1<<0)   Automatic determination of the
                                       key   type   associated   with
                                       Group1.
       ExplicitKeyType2       (1<<1)   Automatic determination of the
                                       key   type   associated   with
                                       Group2.
       ExplicitKeyType3       (1<<2)   Automatic determination of the
                                       key   type   associated   with
                                       Group3.
       ExplicitKeyType4       (1<<3)   Automatic determination of the
                                       key   type   associated   with
                                       Group4.
       ExplicitInterpret      (1<<4)   Application   of  any  of  the
                                       fields     of     a     symbol
                                       interpretation  to  the key in
                                       question.

       ExplicitAutoRepeat     (1<<5)   Automatic   determination   of
                                       auto-repeat   status  for  the
                                       key, as specified in a  symbol
                                       interpretation.
       ExplicitBehavior       (1<<6)   Automatic  assignment  of  the
                                       XkbKB_Lock  behavior  to   the
                                       key,  if  the XkbSI_LockingKey
                                       flag  is  set  in   a   symbol
                                       interpretation.
       ExplicitVModMap        (1<<7)   Automatic determination of the
                                       virtual modifier map  for  the
                                       key   based   on  the  actions
                                       assigned to the  key  and  the
                                       symbol   interpretations  that
                                       match the key.

       XkbGetKeyExplicitComponents sends a request to the server to obtain the
       explicit  components  for  num  keys  on the keyboard starting with key
       first.  It waits for a reply and returns the explicit components in the
       server->explicit      array      of      xkb.       If      successful,
       XkbGetKeyExplicitComponents returns Success. The xkb parameter must  be
       a pointer to a valid Xkb keyboard description.

       If  the  server  map  in  the  xkb  parameter  has  not been allocated,
       XkbGetKeyExplicitComponents  allocates  and   initializes   it   before
       obtaining the actions.

       If  the  server  does  not have a compatible version of Xkb, or the Xkb
       extension      has      not      been       properly       initialized,
       XkbGetKeyExplicitComponents  returns BadMatch. If num is less than 1 or
       greater  than   XkbMaxKeyCount,   XkbGetKeyExplicitComponents   returns
       BadValue.  If  any allocation errors occur, XkbGetKeyExplicitComponents
       returns BadAlloc.

DIAGNOSTICS

       BadAlloc       Unable to allocate storage

       BadMatch       A compatible version of Xkb was  not  available  in  the
                      server or an argument has correct type and range, but is
                      otherwise invalid

       BadValue       An argument is out of range