This manual page is for Mac OS X version 10.6.3

If you are running a different version of Mac OS X, view the documentation locally:

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • For more information about the manual page format, see the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Reference Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.



XkbGetMap(3)                                    XKB FUNCTIONS                                   XkbGetMap(3)



NAME
       XkbGetMap  -  Allocate  an XkbDescRec structure and populate it with the server's keyboard client map
       and server map

SYNOPSIS
       XkbDescPtr XkbGetMap ( display, which, device_spec )
             Display * display;
             unsigned int which;
             unsigned int device_spec;

ARGUMENTS
       - display
              connection to X server

       - which
              mask selecting subcomponents to populate

       - device_spec
              device_id, or XkbUseCoreKbd

DESCRIPTION
       Xkb provides two functions to obtain the keyboard mapping components from the server. The first func-tion, function,
       tion, XkbGetMap, allocates an XkbDescRec structure, retrieves mapping components from the server, and
       stores them in the XkbDescRec structure it just allocated.  The  second  function,  XkbGetUpdatedMap,
       retrieves mapping components from the server and stores them in an XkbDescRec structure that has pre-viously previously
       viously been allocated.

       To allocate an XkbDescRec structure and populate it with the server's keyboard client map and  server
       map,  use  XkbGetMap.  XkbGetMap  is  similar  to  XkbGetKeyboard, but is used only for obtaining the
       address of an XkbDescRec structure that is populated with  keyboard  mapping  components.  It  allows
       finer  control  over  which  substructures  of  the  keyboard mapping components are to be populated.
       XkbGetKeyboard always returns fully populated components, while XkbGetMap can be instructed to return
       a partially populated component.

       The  which  mask is a bitwise inclusive OR of the masks defined in Table 14.1. Only those portions of
       the keyboard server map and the keyboard client maps that are specified in which  are  allocated  and
       populated.

       In  addition  to  allocating and obtaining the server map and the client map, XkbGetMap also sets the
       device_spec, the min_key_code, and max_key_code fields of the keyboard description.

       XkbGetMap is synchronous; it queries the server for the desired information, waits for a  reply,  and
       then returns. If successful, XkbGetMap returns a pointer to the XkbDescRec structure it allocated. If
       unsuccessful, XkbGetMap returns NULL. When unsuccessful, one of the following protocol errors is also
       generated:  BadAlloc (unable to allocate the XkbDescRec structure), BadValue (some mask bits in which
       are undefined), or BadImplementation (a compatible version of the Xkb extension is not  available  in
       the server). To free the returned data, use XkbFreeClientMap.

       Xkb  also  provides convenience functions to get partial component definitions from the server. These
       functions are specified in the "convenience functions" column in  Table  1.  Refer  to  the  sections
       listed in the table for more information on these functions.


                                     Table 1 Xkb Mapping Component Masks
                                          and Convenience Functions
       ------------------------------------------------------------------------------------------------Mask -----------------------------------------------------------------------------------------------Mask
       Mask                             Value    Map      Fields        Convenience
                                                                        Functions
       ------------------------------------------------------------------------------------------------XkbKeyTypesMask -----------------------------------------------------------------------------------------------XkbKeyTypesMask



       XkbKeyTypesMask                  (1<<0)   client   types         XkbGetKeyTypes
                                                          size_types    XkbResizeKeyType
                                                          num_types     XkbCopyKeyType
                                                                        XkbCopyKeyTypes
       XkbKeySymsMask                   (1<<1)   client   syms          XkbGetKeySyms
                                                          size_syms     XkbResizeKeySyms
                                                          num_syms      XkbChangeTypesOfKey
                                                          key_sym_map
       XkbModifierMapMask               (1<<2)   client   modmap        XkbGetKeyModifierMap
       XkbExplicitComponentsMask        (1<<3)   server   explicit      XkbGetKeyExplicitComponents
       XkbKeyActionsMask                (1<<4)   server   key_acts      XkbGetKeyActions
                                                          acts          XkbResizeKeyActions
                                                          num_acts
                                                          size_acts
       XkbKeyBehaviorsMask              (1<<5)   server   behaviors     XkbGetKeyBehaviors
       XkbVirtualModsMask               (1<<6)   server   vmods         XkbGetVirtualMods
       XkbVirtualModMapMask             (1<<7)   server   vmodmap       XkbGetVirtualModMap

       Xkb defines combinations of these masks for convenience:

          #define XkbResizableInfoMask   (XkbKeyTypesMask)
          #define XkbAllClientInfoMask   (XkbKeyTypesMask | XkbKeySymsMask |
                                          XkbModifierMapMask)
          #define XkbAllServerInfoMask   (XkbExplicitComponentsMask |
                                          XkbKeyActionsMask |
                                          XkbKeyBehaviorsMask |
                                          XkbVirtualModsMask |
                                          XkbVirtualModMapMask)
          #define XkbAllMapComponentsMask XkbAllClientInfoMask |
                                          XkbAllServerInfoMask)

       Key  types, symbol maps, and actions are all interrelated: changes in one require changes in the oth-
       ers. The convenience functions make it easier to edit these components and handle the  interdependen-cies. interdependencies.
       cies.


STRUCTURES
       The  complete  description  of an Xkb keyboard is given by an XkbDescRec. The component structures in
       the XkbDescRec represent the major Xkb components.

       typedef struct {
          struct _XDisplay * display;      /* connection to X server */
          unsigned short     flags;        /* private to Xkb, do not modify */
          unsigned short     device_spec;  /* device of interest */
          KeyCode            min_key_code; /* minimum keycode for device */
          KeyCode            max_key_code; /* maximum keycode for device */
          XkbControlsPtr     ctrls;        /* controls */
          XkbServerMapPtr    server;       /* server keymap */
          XkbClientMapPtr    map;          /* client keymap */
          XkbIndicatorPtr    indicators;   /* indicator map */
          XkbNamesPtr        names;        /* names for all components */
          XkbCompatMapPtr    compat;       /* compatibility map */
          XkbGeometryPtr     geom;         /* physical geometry of keyboard */
       } XkbDescRec, *XkbDescPtr;

       The display field points to an X display structure. The flags field is private to the library:  modi-fying modifying
       fying flags may yield unpredictable results. The device_spec field specifies the device identifier of
       the keyboard input device, or XkbUseCoreKeyboard, which  specifies  the  core  keyboard  device.  The
       min_key_code  and  max_key_code fields specify the least and greatest keycode that can be returned by
       the keyboard.

       Each structure component has a corresponding mask bit that is used in function calls to indicate that
       the  structure should be manipulated in some manner, such as allocating it or freeing it. These masks
       and their relationships to the fields in the XkbDescRec are shown in Table 2.


               Table 2 Mask Bits for XkbDescRec
       --------------------------------------------------Mask -------------------------------------------------Mask
       Mask Bit               XkbDescRec Field   Value
       --------------------------------------------------XkbControlsMask -------------------------------------------------XkbControlsMask
       XkbControlsMask        ctrls              (1L<<0)

       XkbServerMapMask       server             (1L<<1)
       XkbIClientMapMask      map                (1L<<2)
       XkbIndicatorMapMask    indicators         (1L<<3)
       XkbNamesMask           names              (1L<<4)
       XkbCompatMapMask       compat             (1L<<5)
       XkbGeometryMask        geom               (1L<<6)
       XkbAllComponentsMask   All Fields         (0x7f)

SEE ALSO
       XkbChangeTypesOfKey(3),  XkbCopyKeyType(3),  XkbCopyKeyTypes(3),  XkbFreeClientMap(3),   XkbGetKeyAc-
       tions(3),  XkbGetKeyBehaviors(3),  XkbGetKeyboard(3),  XkbGetKeyExplicitComponents(3), XkbGetKeyModi-fierMap(3), XkbGetKeyModifierMap(3),
       fierMap(3),   XkbGetKeySyms(3),   XkbGetKeyTypes(3),   XkbGetUpdatedMap(3),   XkbGetVirtualModMap(3),
       XkbGetVirtualMods(3), XkbResizeKeyActions(3), XkbResizeKeySyms(3), XkbResizeKeyType(3)








X Version 11                                    libX11 1.2.1                                    XkbGetMap(3)

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation with the feedback links below.
Bug reports
Report bugs in the functionality of the described tool or API through Bug Reporter.
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.

Did this document help you? Yes It's good, but... Not helpful...