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.