Home Man
Today's Posts

Linux & Unix Commands - Search Man Pages

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

XkbGetMap(3)				  XKB FUNCTIONS 			     XkbGetMap(3)

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

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

       - display
	      connection to X server

       - which
	      mask selecting subcomponents to populate

       - device_spec
	      device_id, or XkbUseCoreKbd

       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-

       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

       XkbKeyTypesMask			(1<<0)	 client   types 	XkbGetKeyTypes
							  size_types	XkbResizeKeyType
							  num_types	XkbCopyKeyType
       XkbKeySymsMask			(1<<1)	 client   syms		XkbGetKeySyms
							  size_syms	XkbResizeKeySyms
							  num_syms	XkbChangeTypesOfKey
       XkbModifierMapMask		(1<<2)	 client   modmap	XkbGetKeyModifierMap
       XkbExplicitComponentsMask	(1<<3)	 server   explicit	XkbGetKeyExplicitComponents
       XkbKeyActionsMask		(1<<4)	 server   key_acts	XkbGetKeyActions
							  acts		XkbResizeKeyActions
       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 |
	  #define XkbAllServerInfoMask	 (XkbExplicitComponentsMask |
					  XkbKeyActionsMask |
					  XkbKeyBehaviorsMask |
					  XkbVirtualModsMask |
	  #define XkbAllMapComponentsMask XkbAllClientInfoMask |

       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.

       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)

       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)

All times are GMT -4. The time now is 08:51 AM.

Unix & Linux Forums Content Copyrightę1993-2018. All Rights Reserved.
Show Password