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
XkbGetKeyModifierMap returns BadAlloc.