The modmap entry of the client map is an array, indexed by keycode, specifying the real modifiers bound to a key. Each entry is a mask composed of a bitwise inclusive OR of the legal real modifiers: ShiftMask, LockMask, ControlMask, Mod1Mask, Mod2Mask, Mod3Mask, Mod4Mask, and Mod5Mask. If a bit is set in a modmap entry, the corresponding key is bound to that modifier.
Pressing or releasing the key bound to a modifier changes the modifier set and unset state. The particular manner in which the modifier set and unset state changes is determined by the behavior and actions assigned to the key.
XkbGetKeyModifierMap
sends a request to the server for the modifier mappings for num keys
starting with the key whose keycode is first. It waits for a reply and
places the results in the xkb->map->modmap array. If successful, XkbGetKeyModifier
returns Success.
If the map component of the xkb parameter has not been allocated, XkbGetKeyModifierMap
allocates and initializes it.
If a compatible version of Xkb is not available in the server or the Xkb extension has not been properly initialized, XkbGetKeySyms returns BadAccess. If any allocation errors occur while obtaining the modifier map, XkbGetKeyModifierMap returns BadAlloc.