XkbGetKeyVirtualModMap - Man Page
Obtain the virtual modifier map (the vmodmap array) for a subset of the keys in a keyboard description
Status XkbGetKeyVirtualModMap (Display *dpy, unsigned int first, unsigned int num, XkbDescPtr xkb);
connection to server
keycode of first key to fetch
number of keys for which virtual mod maps are desired
Xkb description where results will be placed
XkbGetKeyVirutalModmap sends a request to the server to obtain the virtual modifier mappings for num keys on the keyboard starting with key first. It waits for a reply and returns the virtual modifier mappings in the server->vmodmap array of xkb. If successful, XkbGetKeyVirtualModMap 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, XkbGetKeyVirtualModMap allocates and initializes it before obtaining the virtual modifier mappings.
If the server does not have a compatible version of Xkb, or the Xkb extension has not been properly initialized, XkbGetKeyVirtualModMap returns BadMatch. If num is less than 1 or greater than XkbMaxKeyCount, XkbGetKeyVirtualModMap returns BadValue. If any allocation errors occur, XkbGetKeyVirtualModMap returns BadAlloc.
The XkbGetKeyVirutalModmap function returns Success following a successful reply from the server to obtain the virtual modifier mappings for num keys on the keyboard starting with key first.
Unable to allocate storage
A compatible version of Xkb was not available in the server or an argument has correct type and range, but is otherwise invalid
An argument is out of range