Unix/Linux Go Back    


X11R7.4 - man page for xkbgetmap (x11r4 section 3)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


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 function, 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 previously 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  map-
       ping  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  descrip-
       tion.

       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  XkbDe-
       scRec  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				Value	 Map	  Fields	Convenience
									Functions
       ------------------------------------------------------------------------------------------------

       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 others. The convenience functions make it easier to edit these components and han-
       dle the interdependencies.

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: modifying 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 Bit 	      XkbDescRec Field	 Value
       --------------------------------------------------

       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),
       XkbGetKeyActions(3),   XkbGetKeyBehaviors(3),  XkbGetKeyboard(3),  XkbGetKeyExplicitCompo-
       nents(3),  XkbGetKeyModifierMap(3),  XkbGetKeySyms(3),	XkbGetKeyTypes(3),   XkbGetUpdat-
       edMap(3),  XkbGetVirtualModMap(3),  XkbGetVirtualMods(3),  XkbResizeKeyActions(3),  XkbRe-
       sizeKeySyms(3), XkbResizeKeyType(3)

X Version 11				   libX11 1.2.1 			     XkbGetMap(3)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 06:17 AM.