Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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 *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  struc-
     ture,  retrieves mapping components from the server, and stores them in the
     XkbDescRec structure it just allocated. The second  function,  XkbGetUpdat-
     edMap,  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  key-
     board client map and server map, use XkbGetMap. XkbGetMap is similar to Xk-
     bGetKeyboard,  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  compo-
     nents,  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	informa-
     tion, waits for a reply, and then returns. If successful, XkbGetMap returns
     a	pointer  to  the XkbDescRec structure it allocated. If unsuccessful, Xk-
     bGetMap returns NULL. When unsuccessful, one of the following protocol  er-
     rors  is also generated: BadAlloc (unable to allocate the XkbDescRec struc-
     ture), BadValue (some mask bits in which are undefined), or  BadImplementa-
     tion  (a  compatible  version  of the Xkb extension is not available in the
     server). To free the returned data, use XkbFreeKeyboard.

     Xkb also provides convenience functions to get  partial  component  defini-
     tions  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 handle 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 pri-
     vate  to  the library: modifying flags may yield unpredictable results. The
     device_spec field specifies the device identifier of the keyboard input de-
     vice, 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 func-
     tion  calls  to  indicate	that the structure should be manipulated in some
     manner, such as allocating it or freeing it. These masks  and  their  rela-
     tionships 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), XkbGetKey-
     board(3),	XkbGetKeyExplicitComponents(3),   XkbGetKeyModifierMap(3),   Xk-
     bGetKeySyms(3),	XkbGetKeyTypes(3),    XkbGetUpdatedMap(3),    XkbGetVir-
     tualModMap(3),   XkbGetVirtualMods(3),    XkbResizeKeyActions(3),	  XkbRe-
     sizeKeySyms(3), XkbResizeKeyType(3)

X Version 11			  libX11 1.8.13 		    XkbGetMap(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=XkbGetMap&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help