diff options
author | Alan Coopersmith <alan.coopersmith@oracle.com> | 2019-02-23 13:33:41 -0800 |
---|---|---|
committer | Alan Coopersmith <alan.coopersmith@oracle.com> | 2019-02-23 15:22:32 -0800 |
commit | 4feff33159efb139ddb89a90fb26ad646b288f2b (patch) | |
tree | b36ecded595ec090c1df48636dec7ea51751b16b /specs/kbproto/appD.xml | |
parent | eb2c0108e495ff2a5febcc87234780c3a249f49f (diff) |
Restore generation of specs from docbook in autotools builds
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Diffstat (limited to 'specs/kbproto/appD.xml')
-rw-r--r-- | specs/kbproto/appD.xml | 2096 |
1 files changed, 2096 insertions, 0 deletions
diff --git a/specs/kbproto/appD.xml b/specs/kbproto/appD.xml new file mode 100644 index 0000000..23aed05 --- /dev/null +++ b/specs/kbproto/appD.xml @@ -0,0 +1,2096 @@ +<appendix id='protocol_encoding'> +<title>Protocol Encoding</title> + +<sect1 id='Syntactic_Conventions'> +<title>Syntactic Conventions</title> + +<para> +This document uses the same syntactic conventions as the encoding of the core X +protocol, with the following additions: +</para> + +<para> +A LISTofITEMs contains zero or more items of variable type and size. The encode +form for a LISTofITEMs is: +</para> + +<literallayout class='monospaced'> +v LISTofITEMs NAME + + TYPE MASK-EXPRESSION + value1 corresponding field(s) + ... + valuen corresponding field(s) +</literallayout> + +<para> +The MASK-EXPRESSION is an expression using C-style boolean operators and fields +of the request which specifies the bitmask used to determine whether or not a +mem ber of the LISTofITEMs is present. If present, TYPE specifies the +interpretation of the resulting bitmask and the values are listed using the +symbolic names of the members of the set. If TYPE is blank, the values are +numeric constants. +</para> + + +<para> +It is possible for a single bit in the MASK-EXPRESSION to control more than one +ITEM — if the bit is set, all listed ITEMs are present. It is also possible +for multiple bits in the MASK-EXPRESSION to control a single ITEM — if any of +the bits associated with an ITEM are set, it is present in the LISTofITEMs. +</para> + + +<para> +The size of a LISTofITEMS is derived from the items that are present in the +list, so it is always given as a variable in the request description, and the +request is followed by a section of the form: +</para> + +<literallayout class='monospaced'> +ITEMs +encode-form +... +encode-form +</literallayout> + +<para> +listing an encode-form for each ITEM. The NAME in each encode-form keys to the +fields listed as corresponding to each bit in the MASK-EXPRESSION. Items are +not necessarily the same size, and the size specified in the encoding form is +the size that the item occupies if it is present. +</para> + + +<para> +Some types are of variable size. The encode-form for a list of items of a +single type but variable size is: +</para> + +<literallayout class='monospaced'> +S0+..Ss LISTofTYPE name +</literallayout> + +<para> +Which indicates that the list has <emphasis> +s</emphasis> + elements of variable size and that the size of the list is the sum of the +sizes of all of the elements that make up the list. The notation Sn refers to +the size of the <emphasis> +n</emphasis> +th element of the list and the notation S* refers to the size of the list as a +whole. +</para> + + +<para> +The definition of a type of variable size includes an expression which +specifies the size. The size is specified as a constant plus a variable +expression; the constant specifies the size of the fields that are always +present and the variables which make up the variable expression are defined in +the constant portion of the structure. For example, the following definition +specifies a counted string with a two-byte length field preceding the string: +</para> + + +<literallayout class='monospaced'> +TYPE 2+n+p +2 n length +n STRING8 string +p unused,p=pad(n) +</literallayout> + +<para> +Some fields are optional. The size of an optional field has the form: +"[<emphasis> +expr</emphasis> +]" where expr specifies the size of the field if it is present. An explanation +of the conditions under which the field is present follows the name in the +encode form: +</para> + +<literallayout class='monospaced'> +1 BOOL more +3 unused +[4] CARD32 optData, if more==TRUE +</literallayout> + +<para> +This portion of the structure is four bytes long if more is FALSE or eight +bytes long if more is TRUE. This notation can also be used in size expressions; +for example, the size of the previous structure is written as "4+[4]" bytes. +</para> + + +</sect1> +<sect1 id='appD::Common_Types'> +<title>Common Types</title> +<literallayout class='monospaced'> +SETofKB_EVENTTYPE + #x0001 XkbNewKeyboardNotify + #x0002 XkbMapNotify + #x0004 XkbStateNotify + #x0008 XkbControlsNotify + #x0010 XkbIndicatorStateNotify + #x0020 XkbIndicatorMapNotify + #x0040 XkbNamesNotify + #x0080 XkbCompatMapNotify + #x0100 XkbBellNotify + #x0200 XkbActionMessage + #x0400 XkbAccessXNotify + #x0800 XkbExtensionDeviceNotify +</literallayout> + +<literallayout class='monospaced'>SETofKB_NKNDETAIL + #x01 XkbNKN_Keycodes + #x02 XkbNKN_Geometry + #x04 XkbNKN_DeviceID +</literallayout> + +<literallayout class='monospaced'>SETofKB_AXNDETAIL + #x01 XkbAXN_SKPress + #x02 XkbAXN_SKAccept + #x04 XkbAXN_SKReject + #x08 XkbAXN_SKRelease + #x10 XkbAXN_BKAccept + #x20 XkbAXN_BKReject + #x40 XkbAXN_AXKWarning +</literallayout> + +<literallayout class='monospaced'>SETofKB_MAPPART + #x0001 XkbKeyTypes + #x0002 XkbKeySyms + #x0004 XkbModifierMap + #x0008 XkbExplicitComponents + #x0010 XkbKeyActions + #x0020 XkbKeyBehaviors + #x0040 XkbVirtualMods + #x0080 XkbVirtualModMap +</literallayout> + +<literallayout class='monospaced'>SETofKB_STATEPART + #x0001 XkbModifierState + #x0002 XkbModifierBase + #x0004 XkbModifierLatch + #x0008 XkbModifierLock + #x0010 XkbGroupState + #x0020 XkbGroupBase + #x0040 XkbGroupLatch + #x0080 XkbGroupLock + #x0100 XkbCompatState + #x0200 XkbGrabMods + #x0400 XkbCompatGrabMods + #x0800 XkbLookupMods + #x1000 XkbCompatLookupMods + #x2000 XkbPointerButtons +</literallayout> + +<literallayout class='monospaced'>SETofKB_BOOLCTRL + #x00000001 XkbRepeatKeys + #x00000002 XkbSlowKeys + #x00000004 XkbBounceKeys + #x00000008 XkbStickyKeys + #x00000010 XkbMouseKeys + #x00000020 XkbMouseKeysAccel + #x00000040 XkbAccessXKeys + #x00000080 XkbAccessXTimeoutMask + #x00000100 XkbAccessXFeedbackMask + #x00000200 XkbAudibleBellMask + #x00000400 XkbOverlay1Mask + #x00000800 XkbOverlay2Mask + #x00001000 XkbIgnoreGroupLockMask +</literallayout> + +<literallayout class='monospaced'>SETofKB_CONTROL + Encodings are the same as for SETofKB_BOOLCTRL, with the addition of: + #x080000000 XkbGroupsWrap + #x100000000 XkbInternalMods + #x200000000 XkbIgnoreLockMods + #x400000000 XkbPerKeyRepeat + #x800000000 XkbControlsEnabled +</literallayout> + +<literallayout class='monospaced'>SETofKB_AXFBOPT + #x0001 XkbAX_SKPressFB + #x0002 XkbAX_SKAcceptFB + #x0004 XkbAX_FeatureFB + #x0008 XkbAX_SlowWarnFB + #x0010 XkbAX_IndicatorFB + #x0020 XkbAX_StickyKeysFB + #x0100 XkbAX_SKReleaseFB + #x0200 XkbAX_SKRejectFB + #x0400 XkbAX_BKRejectFB + #x0800 XkbAX_DumbBell +</literallayout> + +<literallayout class='monospaced'>SETofKB_AXSKOPT + #x0040 XkbAX_TwoKeys + #x0080 XkbAX_LatchToLock +</literallayout> + +<literallayout class='monospaced'>SETofKB_AXOPTION + Encoding same as the bitwise union of : + SETofKB_AXFBOPT + SETofKB_AXSKOPT +</literallayout> + +<literallayout class='monospaced'>KB_DEVICESPEC + 0..255 input extension device id + #x100 XkbUseCoreKbd + #x200 XkbUseCorePtr +</literallayout> + +<literallayout class='monospaced'>KB_LEDCLASSRESULT + 0 KbdFeedbackClass + 4 LedFeedbackClass +</literallayout> + +<literallayout class='monospaced'>KB_LEDCLASSSPEC + Encoding same as KB_LEDCLASSRESULT, with the addition of: + #x0300 XkbDfltXIClass + #x0500 XkbAllXIClasses +</literallayout> + +<literallayout class='monospaced'>KB_BELLCLASSRESULT + 0 KbdFeedbackClass + 5 BellFeedbackClass +</literallayout> + +<literallayout class='monospaced'>KB_BELLCLASSSPEC + Encoding same as KB_BELLCLASSRESULT, with the addition of: + #x0300 XkbDfltXIClass +</literallayout> + +<literallayout class='monospaced'>KB_IDSPEC + 0..255 input extension feedback id + #x0400 XkbDfltXIId +</literallayout> + +<literallayout class='monospaced'>KB_IDRESULT + Encoding same as KB_IDSPEC, with the addition of: + #xff00 XkbXINone +</literallayout> + +<literallayout class='monospaced'>KB_MULTIIDSPEC + encodings same as KB_IDSPEC, with the addition of: + #x0500 XkbAllXIIds +</literallayout> + +<literallayout class='monospaced'>KB_GROUP + 0 XkbGroup1 + 1 XkbGroup2 + 2 XkbGroup3 + 3 XkbGroup4 +</literallayout> + +<literallayout class='monospaced'>KB_GROUPS + Encoding same as KB_GROUP, with the addition of: + 254 XkbAnyGroup + 255 XkbAllGroups +</literallayout> + +<literallayout class='monospaced'>SETofKB_GROUP + #x01 XkbGroup1 + #x02 XkbGroup2 + #x04 XkbGroup3 + #x08 XkbGroup4 +</literallayout> + +<literallayout class='monospaced'>SETofKB_GROUPS + Encoding same as SETofKB_GROUP, with the addition of: + #x80 XkbAnyGroup +</literallayout> + +<literallayout class='monospaced'>KB_GROUPSWRAP + #x00 XkbWrapIntoRange + #x40 XkbClampIntoRange + #x80 XkbRedirectIntoRange +</literallayout> + +<literallayout class='monospaced'>SETofKB_VMODSHIGH + #x80 virtual modifier 15 + #x40 virtual modifier 14 + #x20 virtual modifier 13 + #x10 virtual modifier 12 + #x08 virtual modifier 11 + #x04 virtual modifier 10 + #x02 virtual modifier 9 + #x01 virtual modifier 8 +</literallayout> + +<literallayout class='monospaced'>SETofKB_VMODSLOW + #x80 virtual modifier 7 + #x40 virtual modifier 6 + #x20 virtual modifier 5 + #x10 virtual modifier 4 + #x08 virtual modifier 3 + #x04 virtual modifier 2 + #x02 virtual modifier 1 + #x01 virtual modifier 0 +</literallayout> + +<literallayout class='monospaced'>SETofKB_VMOD + #x8000 virtual modifier 15 + #x4000 virtual modifier 14 + #x2000 virtual modifier 13 + #x1000 virtual modifier 12 + #x0800 virtual modifier 11 + #x0400 virtual modifier 10 + #x0200 virtual modifier 9 + #x0100 virtual modifier 8 + #x0080 virtual modifier 7 + #x0040 virtual modifier 6 + #x0020 virtual modifier 5 + #x0010 virtual modifier 4 + #x0008 virtual modifier 3 + #x0004 virtual modifier 2 + #x0002 virtual modifier 1 + #x0001 virtual modifier 0 +</literallayout> + +<literallayout class='monospaced'>SETofKB_EXPLICIT + #x80 XkbExplicitVModMap + #x40 XkbExplicitBehavior + #x20 XkbExplicitAutoRepeat + #x10 XkbExplicitInterpret + #x08 XkbExplicitKeyType4 + #x04 XkbExplicitKeyType3 + #x02 XkbExplicitKeyType2 + #x01 XkbExplicitKeyType1 +</literallayout> + +<literallayout class='monospaced'>KB_SYMINTERPMATCH + #x80 XkbSI_LevelOneOnly + #x7f operation, one of the following: + 0 XkbSI_NoneOf + 1 XkbSI_AnyOfOrNone + 2 XkbSI_AnyOf + 3 XkbSI_AllOf + 4 XkbSI_Exactly +</literallayout> + +<literallayout class='monospaced'>SETofKB_IMFLAG + #x80 XkbIM_NoExplicit + #x40 XkbIM_NoAutomatic + #x20 XkbIM_LEDDrivesKB +</literallayout> + +<literallayout class='monospaced'>SETofKB_IMMODSWHICH + #x10 XkbIM_UseCompat + #x08 XkbIM_UseEffective + #x04 XkbIM_UseLocked + #x02 XkbIM_UseLatched + #x01 XkbIM_UseBase +</literallayout> + +<literallayout class='monospaced'>SETofKB_IMGROUPSWHICH + #x10 XkbIM_UseCompat + #x08 XkbIM_UseEffective + #x04 XkbIM_UseLocked + #x02 XkbIM_UseLatched + #x01 XkbIM_UseBase +</literallayout> + +<literallayout class='monospaced'>KB_INDICATORMAP +1 SETofKB_IMFLAGS flags +1 SETofKB_IMGROUPSWHICH whichGroups +1 SETofKB_GROUP groups +1 SETofKB_IMMODSWHICH whichMods +1 SETofKEYMASK mods +1 SETofKEYMASK realMods +2 SETofKB_VMOD vmods +4 SETofKB_BOOLCTRL ctrls +</literallayout> + +<literallayout class='monospaced'>SETofKB_CMDETAIL + #x01 XkbSymInterp + #x02 XkbGroupCompat +</literallayout> + +<literallayout class='monospaced'>SETofKB_NAMEDETAIL + #x0001 XkbKeycodesName + #x0002 XkbGeometryName + #x0004 XkbSymbolsName + #x0008 XkbPhysSymbolsName + #x0010 XkbTypesName + #x0020 XkbCompatName + #x0040 XkbKeyTypeNames + #x0080 XkbKTLevelNames + #x0100 XkbIndicatorNames + #x0200 XkbKeyNames + #x0400 XkbKeyAliases + #x0800 XkbVirtualModNames + #x1000 XkbGroupNames + #x2000 XkbRGNames +</literallayout> + +<literallayout class='monospaced'>SETofKB_GBNDETAIL + #x01 XkbGBN_Types + #x02 XkbGBN_CompatMap + #x04 XkbGBN_ClientSymbols + #x08 XkbGBN_ServerSymbols + #x10 XkbGBN_IndicatorMaps + #x20 XkbGBN_KeyNames + #x40 XkbGBN_Geometry + #x80 XkbGBN_OtherNames +</literallayout> + +<literallayout class='monospaced'>SETofKB_XIEXTDEVFEATURE + #x02 XkbXI_ButtonActions + #x04 XkbXI_IndicatorNames + #x08 XkbXI_IndicatorMaps + #x10 XkbXI_IndicatorState +</literallayout> + +<literallayout class='monospaced'>SETofKB_XIFEATURE + Encoding same as SETofKB_XIEXTDEVFEATURE, with the addition of: + #x01 XkbXI_Keyboards +</literallayout> + +<literallayout class='monospaced'>SETofKB_XIDETAIL + Encoding same as SETofKB_XIFEATURE, with the addition of: + #x8000 XkbXI_UnsupportedFeature +</literallayout> + +<literallayout class='monospaced'>SETofKB_PERCLIENTFLAG + #x01 XkbDetectableAutorepeat + #x02 XkbGrabsUseXKBState + #x04 XkbAutoResetControls + #x08 XkbLookupStateWhenGrabbed + #x10 XkbSendEventUsesXKBState +</literallayout> + +<literallayout class='monospaced'>KB_MODDEF +1 SETofKEYMASK mask +1 SETofKEYMASK realMods +2 SETofVMOD vmods +</literallayout> + +<literallayout class='monospaced'>KB_COUNTED_STRING8 +1 l length +l STRING8 string +</literallayout> + +<literallayout class='monospaced'>KB_COUNTED_STRING16 +2 l length +l STRING8 string +</literallayout> + +<literallayout class='monospaced'>KB_COUNTED_STRING16 +p unused,p=pad(2+l) +</literallayout> + +</sect1> +<sect1 id='appD::Errors'> +<title>Errors</title> + +<literallayout class='monospaced'>1 0 Error +2 ?? code +2 CARD16 sequence +4 CARD32 error value + most significant 8 bits of error value have the meaning: + 0xff XkbErrBadDevice + 0xfe XkbErrBadClass + 0xfd XkbErrBadId + the least significant 8 bits of the error value contain the device id, +class, or feedback + id which failed. +2 CARD16 minor opcode +1 CARD8 major opcode +21 unused +</literallayout> + +</sect1> +<sect1 id='appD::Key_Actions'> +<title>Key Actions</title> + +<literallayout class='monospaced'>1 0 type +7 unused +</literallayout> + +<literallayout class='monospaced'>1 1 type +1 BITMASK flags + #x01 XkbSA_ClearLocks + #x02 XkbSA_LatchToLock + #x04 XkbSA_UseModMapMods +1 SETofKEYMASK mask +1 SETofKEYMASK real modifiers +1 SETofKB_VMODSHIGH virtual modifiers high +1 SETofKB_VMODSLOW virtual modifiers low +2 unused +</literallayout> + +<literallayout class='monospaced'>1 2 type +1 BITMASK flags + #x01 XkbSA_ClearLocks + #x02 XkbSA_LatchToLock + #x04 XkbSA_UseModMapMods +1 SETofKEYMASK mask +1 SETofKEYMASK real modifiers +1 SETofKB_VMODSHIGH virtual modifiers high +1 SETofKB_VMODSLOW virtual modifiers low +2 unused +</literallayout> + +<literallayout class='monospaced'>1 3 type +1 BITMASK flags + #x01 XkbSA_LockNoLock + #x02 XkbSA_LockNoUnlock + #x04 XkbSA_UseModMapMods +1 SETofKEYMASK mask +1 SETofKEYMASK real modifiers +1 SETofKB_VMODSHIGH virtual modifiers high +1 SETofKB_VMODSLOW virtual modifiers low +2 unused +</literallayout> + +<literallayout class='monospaced'>1 4 type +1 BITMASK flags + #x01 XkbSA_ClearLocks + #x02 XkbSA_LatchToLock + #x04 XkbSA_GroupAbsolute +1 INT8 group +5 unused +</literallayout> + +<literallayout class='monospaced'>1 5 type +1 BITMASK flags + #x01 XkbSA_ClearLocks + #x02 XkbSA_LatchToLock + #x04 XkbSA_GroupAbsolute +1 INT8 group +5 unused +</literallayout> + +<literallayout class='monospaced'>1 6 type +1 BITMASK flags + #x01 XkbSA_LockNoLock + #x02 XkbSA_LockNoUnlock + #x04 XkbSA_GroupAbsolute +1 INT8 group +5 unused +</literallayout> + +<literallayout class='monospaced'>1 7 type +1 BITMASK flags + #x01 XkbSA_NoAcceleration + #x02 XkbSA_MoveAbsoluteX + #x04 XkbSA_MoveAbsoluteY +1 INT8 x high +1 CARD8 x low +1 INT8 y high +1 CARD8 y low +2 unused +</literallayout> + +<literallayout class='monospaced'>1 8 type +1 BITMASK flags +1 CARD8 count +1 CARD8 button +4 unused +</literallayout> + +<literallayout class='monospaced'>1 9 type +1 BITMASK flags +1 unused +1 CARD8 button +4 unused +</literallayout> + +<literallayout class='monospaced'>1 10 type +1 BITMASK flags + #x04 XkbSA_DfltBtnAbsolute +1 BITMASK affect + #x01 XkbSA_AffectDfltBtn +1 INT8 value +4 unused +</literallayout> + +<literallayout class='monospaced'>1 11 type +1 BITMASK flags + #x01 XkbSA_LockNoLock + #x02 XkbSA_LockNoUnlock + #x04 XkbSA_UseModMapMods (if SA_ISODfltIsGroup is 0) + #x04 XkbSA_GroupAbsolute (if SA_ISODfltIsGroup is 1) + #x80 XkbSA_ISODfltIsGroup +1 SETofKEYMASK mask +1 SETofKEYMASK real modifiers +1 INT8 group +1 BITMASK affect + #x08 XkbSA_ISONoAffectCtrls + #x10 XkbSA_ISONoAffectPtr + #x20 XkbSA_ISONoAffectGroup + #x40 XkbSA_ISONoAffectMods +1 SETofKB_VMODSHIGH virtual modifiers high +1 SETofKB_VMODSLOW virtual modifiers low +</literallayout> + +<literallayout class='monospaced'>1 12 type +7 unused +</literallayout> + +<literallayout class='monospaced'>1 13 type +1 BITMASK flags + #x01 XkbSA_SwitchApplication + #x04 XkbSA_SwitchAbsolute +1 INT8 new screen +5 unused (must be 0) +</literallayout> + +<literallayout class='monospaced'>1 14 type +3 unused (must be 0) +1 BITMASK boolean controls high + #x01 XkbAccessXFeedbackMask + #x02 XkbAudibleBellMask + #x04 XkbOverlay1Mask + #x08 XkbOverlay2Mask + #x10 XkbIgnoreGroupLockMask +1 BITMASK boolean controls low + #x01 XkbRepeatKeys + #x02 XkbSlowKeys + #x04 XkbBounceKeys + #x08 XkbStickyKeys + #x10 XkbMouseKeys + #x20 XkbMouseKeysAccel + #x40 XkbAccessXKeys + #x80 XkbAccessXTimeoutMask +2 unused (must be 0) +</literallayout> + +<literallayout class='monospaced'>1 15 type +3 unused (must be 0) +1 BITMASK boolean controls high + #x01 XkbAccessXFeedbackMask + #x02 XkbAudibleBellMask + #x04 XkbOverlay1Mask + #x08 XkbOverlay2Mask + #x10 XkbIgnoreGroupLockMask +1 BITMASK boolean controls low + #x01 XkbRepeatKeys + #x02 XkbSlowKeys + #x04 XkbBounceKeys + #x08 XkbStickyKeys + #x10 XkbMouseKeys + #x20 XkbMouseKeysAccel + #x40 XkbAccessXKeys + #x80 XkbAccessXTimeoutMask +</literallayout> + +<literallayout class='monospaced'>1 16 type +2 unused (must be 0) +</literallayout> + +<literallayout class='monospaced'>1 16 type +1 BITMASK flags + #x01 XkbSA_MessageOnPress + #x02 XkbSA_MessageOnRelease + #x04 XkbSA_MessageGenKeyEvent +6 STRING message +</literallayout> + +<literallayout class='monospaced'>1 17 type +1 KEYCODE new key +1 SETofKEYMASK mask +1 SETofKEYMASK real modifiers +1 SETofKB_VMODSHIGH virtual modfiiers mask high +1 SETofKB_VMODSLOW virtual modifiers mask low +1 SETofKB_VMODSHIGH virtual modifiers high +1 SETofKB_VMODSLOW virtual modfiers low +</literallayout> + +<literallayout class='monospaced'>1 18 type +1 0 flags +1 CARD8 count +1 CARD8 button +1 CARD8 device +3 unused (must be 0) +</literallayout> + +<literallayout class='monospaced'>1 19 type +1 BITMASK flags + #x01 XkbSA_LockNoLock + #x02 XkbSA_LockNoUnlock +1 unused +1 CARD8 button +1 CARD8 device +</literallayout> + +<literallayout class='monospaced'>1 20 type +1 CARD8 device +1 KB_SA_VALWHAT valuator 1 what + #x00 XkbSA_IgnoreVal + #x01 XkbSA_SetValMin + #x02 XkbSA_SetValCenter + #x03 XkbSA_SetValMax + #x04 XkbSA_SetValRelative + #x05 XkbSA_SetValAbsolute +1 CARD8 valuator 1 index +1 CARD8 valuator 1 value +1 KB_SA_VALWHAT valuator 2 what + Encodings as for "valuator 1 what" above +1 CARD8 valuator 2 index +1 CARD8 valuator 2 value +</literallayout> + +</sect1> +<sect1 id='Key_Behaviors'> +<title>Key Behaviors</title> + +<literallayout class='monospaced'>1 #x00 type +1 unused +</literallayout> + +<literallayout class='monospaced'>1 #x01 type +1 unused +</literallayout> + +<literallayout class='monospaced'>1 #x02 type +1 0..31 group +</literallayout> + +<literallayout class='monospaced'>1 #x03 type +1 KEYCODE key +</literallayout> + +<literallayout class='monospaced'>1 #x04 type +1 CARD8 key +</literallayout> + +<literallayout class='monospaced'>1 #x81 type +1 unused +</literallayout> + +<literallayout class='monospaced'>1 #x82 type +1 0..31 group +</literallayout> + +<literallayout class='monospaced'>1 #x83 type +1 KEYCODE key +</literallayout> + +<literallayout class='monospaced'>1 #x84 type +1 KEYCODE key +</literallayout> + +</sect1> +<sect1 id='appD::Requests'> +<title>Requests</title> + +<literallayout class='monospaced'>1 ?? opcode +1 0 xkb-opcode +2 2 request-length +2 CARD16 wantedMajor +2 CARD16 wantedMinor +</literallayout> + +<literallayout class='monospaced'>1 1 Reply +1 BOOL supported +2 CARD16 sequence number +4 0 reply length +2 1 serverMajor +2 0 serverMinor +20 unused +</literallayout> + + +<literallayout class='monospaced'>1 ?? opcode +1 1 xkb-opcode +2 4+(V+p)/4 request-length +2 KB_DEVICESPEC deviceSpec +2 SETofKB_EVENTTYPE affectWhich +2 SETofKB_EVENTTYPE clear +2 SETofKB_EVENTTYPE selectAll +2 SETofKB_MAPDETAILS affectMap +2 SETofKB_MAPDETAILS map +V LISTofITEMs details + SETofKB_EVENTTYPE +(affectWhich&(~clear)&(~selectAll)) + XkbNewKeyboardNotify affectNewKeyboard, newKeyboardDetails + XkbStateNotify affectState, stateDetails + XkbControlsNotify affectCtrls, ctrlDetails + XkbIndicatorStateNotify affectIndicatorState, indicatorStateDetails + XkbIndicatorMapNotify affectIndicatorMap, indicatorMapDetails + XkbNamesNotify affectNames, namesDetails + XkbCompatMapNotify affectCompat, compatDetails + XkbBellNotify affectBell, bellDetails + XkbActionMessage affectMsgDetails, msgDetails + XkbExtensionDeviceNotify affectExtDev, extdevDetails +</literallayout> + +<literallayout class='monospaced'>ITEMs +p unused, p=pad(V) +</literallayout> + +<literallayout class='monospaced'>ITEMs +2 SETofKB_NKNDETAIL affectNewKeyboard +2 SETofKB_NKNDETAIL newKeyboardDetails +2 SETofKB_STATEPART affectState +2 SETofKB_STATEPART stateDetails +4 SETofKB_CONTROL affectCtrls +4 SETofKB_CONTROL ctrlDetails +4 SETofKB_INDICATOR affectIndicatorState +4 SETofKB_INDICATOR indicatorStateDetails +4 SETofKB_INDICATOR affectIndicatorMaps +4 SETofKB_INDICATOR indicatorMapDetails +2 SETofKB_NAME_DETAIL affectNames +2 SETofKB_NAME_DETAIL namesDetails +1 SETofKB_CMDETAIL affectCompat +1 SETofKB_CMDETAIL compatDetails +1 SETofKB_BELLDETAIL affectBell +1 SETofKB_BELLDETAIL bellDetails +1 SETofKB_MSGDETAIL affectMsgDetails +1 SETofKB_MSGDETAIL msgDetails +2 SETofKB_AXNDETAIL affectAccessX +2 SETofKB_AXNDETAIL accessXDetails +2 SETofKB_XIDETAIL affectExtDev +2 SETofKB_XIDETAIL extdevDetails +</literallayout> + + +<literallayout class='monospaced'>1 ?? opcode +1 3 xkb-opcode +2 7 request-length +2 KB_DEVICESPEC deviceSpec +2 KB_BELLCLASSSPEC bellClass +2 KB_IDSPEC bellID +1 INT8 percent +1 BOOL forceSound +1 BOOL eventOnly +1 unused +2 INT16 pitch +2 INT16 duration +2 unused +4 ATOM name +4 WINDOW window +</literallayout> + +<literallayout class='monospaced'>1 ?? opcode +1 4 xkb-opcode +2 2 request-length +2 KB_DEVICESPEC deviceSpec +2 unused +</literallayout> + +<literallayout class='monospaced'>1 1 Reply +1 CARD8 deviceID +2 CARD16 sequence number +4 0 length +1 SETofKEYMASK mods +1 SETofKEYMASK baseMods +1 SETofKEYMASK latchedMods +1 SETofKEYMASK lockedMods +1 KP_GROUP group +1 KP_GROUP lockedGroup +2 INT16 baseGroup +2 INT16 latchedGroup +1 SETofKEYMASK compatState +1 SETofKEYMASK grabMods +1 SETofKEYMASK compatGrabMods +1 SETofKEYMASK lookupMods +1 SETofKEYMASK compatLookupMods +1 unused +2 SETofBUTMASK ptrBtnState +6 unused +</literallayout> + + +<literallayout class='monospaced'>1 ?? opcode +1 5 xkb-opcode +2 4 request-length +2 KB_DEVICESPEC deviceSpec +1 SETofKEYMASK affectModLocks +1 SETofKEYMASK modLocks +1 BOOL lockGroup +1 KB_GROUP groupLock +1 SETofKEYMASK affectModLatches +1 SETofKEYMASK modLatches +1 unused +1 BOOL latchGroup +2 INT16 groupLatch +</literallayout> + +<literallayout class='monospaced'>1 ?? opcode +1 6 xkb-opcode +2 2 request-length +2 KB_DEVICESPEC deviceSpec +2 unused +</literallayout> + +<literallayout class='monospaced'>1 1 Reply +1 CARD8 deviceID +2 CARD16 sequence number +4 15 length +1 CARD8 mouseKeysDfltBtn +1 CARD8 numGroups +1 CARD8 groupsWrap +1 SETofKEYMASK internalMods.mask +1 SETofKEYMASK ignoreLockMods.mask +1 SETofKEYMASK internalMods.realMods +1 SETofKEYMASK ignoreLockMods.realMods +1 unused +2 SETofKB_VMOD internalMods.vmods +2 SETofKB_VMOD ignoreLockMods.vmods +2 CARD16 repeatDelay +2 CARD16 repeatInterval +2 CARD16 slowKeysDelay +2 CARD16 debounceDelay +2 CARD16 mouseKeysDelay +2 CARD16 mouseKeysInterval +2 CARD16 mouseKeysTimeToMax +2 CARD16 mouseKeysMaxSpeed +2 INT16 mouseKeysCurve +2 SETofKB_AXOPTION accessXOptions +2 CARD16 accessXTimeout +2 SETofKB_AXOPTION accessXTimeoutOptionsMask +2 SETofKB_AXOPTION accessXTimeoutOptionValues +2 unused +4 SETofKB_BOOLCTRL accessXTimeoutMask +4 SETofKB_BOOLCTRL accessXTimeoutValues +4 SETofKB_BOOLCTRL enabledControls +32 LISTofCARD8 perKeyRepeat +</literallayout> + + +<literallayout class='monospaced'>1 ?? opcode +1 7 xkb-opcode +2 25 request-length +2 KB_DEVICESPEC deviceSpec +1 SETofKEYMASK affectInternalRealMods +1 SETofKEYMASK internalRealMods +1 SETofKEYMASK affectIgnoreLockRealMods +1 SETofKEYMASK ignoreLockRealMods +2 SETofKB_VMOD affectInternalVirtualMods +2 SETofKB_VMOD internalVirtualMods +2 SETofKB_VMOD affectIgnoreLockVirtualMods +2 SETofKB_VMOD ignoreLockVirtualMods +1 CARD8 mouseKeysDfltBtn +1 CARD8 groupsWrap +2 SETofKB_AXOPTION accessXOptions +2 unused +4 SETofKB_BOOLCTRL affectEnabledControls +4 SETofKB_BOOLCTRL enabledControls +4 SETofKB_CONTROL changeControls +2 CARD16 repeatDelay +2 CARD16 repeatInterval +2 CARD16 slowKeysDelay +2 CARD16 debounceDelay +2 CARD16 mouseKeysDelay +2 CARD16 mouseKeysInterval +2 CARD16 mouseKeysTimeToMax +2 CARD16 mouseKeysMaxSpeed +2 INT16 mouseKeysCurve +2 CARD16 accessXTimeout +4 SETofKB_BOOLCTRL accessXTimeoutMask +4 SETofKB_BOOLCTRL accessXTimeoutValues +2 SETofKB_AXOPTION accessXTimeoutOptionsMask +2 SETofKB_AXOPTION accessXTimeoutOptionsValues +32 LISTofCARD8 perKeyRepeat +</literallayout> + +<literallayout class='monospaced'>1 CARD8 opcode +1 8 xkb-opcode +2 7 request-length +2 KB_DEVICESPEC deviceSpec +2 SETofKB_MAPPART full +2 SETofKB_MAPPART partial +1 CARD8 firstType +1 CARD8 nTypes +1 KEYCODE firstKeySym +1 CARD8 nKeySyms +1 KEYCODE firstKeyAction +1 CARD8 nKeyActions +1 KEYCODE firstKeyBehavior +1 CARD8 nKeyBehaviors +2 SETofKB_VMOD virtualMods +1 KEYCODE firstKeyExplicit +1 CARD8 nKeyExplicit +1 KEYCODE firstModMapKey +1 CARD8 nModMapKeys +1 KEYCODE firstVModMapKey +1 CARD8 nVModMapKeys +2 unused +</literallayout> + +<literallayout class='monospaced'>1 1 Reply +1 CARD8 deviceID +2 CARD16 sequence number +4 2+(I/4) length +2 unused +1 KEYCODE minKeyCode +1 KEYCODE maxKeyCode +2 SETofKB_MAPPART present +1 CARD8 firstType +1 t nTypes +1 CARD8 totalTypes +1 KEYCODE firstKeySym +2 S totalSyms +1 s nKeySyms +1 KEYCODE firstKeyAction +2 A totalActions +1 a nKeyActions +1 KEYCODE firstKeyBehavior +1 b nKeyBehaviors +1 B totalKeyBehaviors +1 KEYCODE firstKeyExplicit +1 e nKeyExplicit +1 E totalKeyExplicit +1 KEYCODE firstModMapKey +1 m nModMapKeys +1 M totalModMapKeys +1 KEYCODE firstVModMapKey +1 0 nVModMapKeys +1 V totalVModMapKeys +1 unused +2 SETofKB_VMOD virtualMods (has v bits set to 1) +I LISTofITEMs map + SETofKB_MAPPART (present) + XkbKeyTypes typesRtrn + XkbKeySyms symsRtrn + XkbKeyActions actsRtrn.count, actsRtrn.acts + XkbKeyBehaviors behaviorsRtrn + XkbVirtualMods vmodsRtrn + XkbExplicitComponents explicitRtrn + XkbModifierMap modmapRtrn + XkbVirtualModMap vmodMapRtrn +</literallayout> + +<literallayout class='monospaced'>ITEMs +T1+..Tt LISTofKB_KEYTYPE typesRtrn +8s+4S LISTofKB_KEYSYMMAP symsRtrn +a LISTofCARD8 actsRtrn.count +p unused,p=pad(a) +8A LISTofKB_ACTION actsRtrn.acts +4B LISTofKB_SETBEHAVIOR behaviorsRtrn +v LISTofSETofKEYMASK vmodsRtrn +p unused, p=pad(v) +2E LISTofKB_SETEXPLICIT explicitRtrn +p unused,p=pad(2E) +2M LISTofKB_KEYMODMAP modmapRtrn +p unused, p=pad(2M) +4V LISTofKB_KEYVMODMAP vmodMapRtrn +</literallayout> + +<literallayout class='monospaced'>KB_KEYTYPE 8+8m+[4m] +1 SETofKEYMASK mods.mask +1 SETofKEYMASK mods.mods +2 SETofKB_VMOD mods.vmods +1 CARD8 numLevels +1 m nMapEntries +1 BOOL hasPreserve +1 unused +8m LISTofKB_KTMAPENTRY map +[4m] LISTofKB_MODDEF preserve +</literallayout> + +<literallayout class='monospaced'>KB_KTMAPENTRY +1 BOOL active +1 SETofKEYMASK mods.mask +1 CARD8 level +1 SETofKEYMASK mods.mods +2 SETofKB_VMOD mods.vmods +2 unused +</literallayout> + +<literallayout class='monospaced'>KB_KEYSYMMAP 8+4n +4 LISTofCARD8 ktIndex +1 CARD8 groupInfo +1 CARD8 width +2 n nSyms +4n LISTofKEYSYM syms +</literallayout> + +<literallayout class='monospaced'>KB_SETBEHAVIOR +1 KEYCODE keycode +2 KB_BEHAVIOR behavior +1 unused +</literallayout> + +<literallayout class='monospaced'>KB_SETEXPLICIT +1 KEYCODE keycode +1 SETofKB_EXPLICIT explicit +</literallayout> + +<literallayout class='monospaced'>KB_KEYMODMAP +1 KEYCODE keycode +1 SETofKB_KEYMASK mods +</literallayout> + +<literallayout class='monospaced'>KB_KEYVMODMAP +1 KEYCODE keycode +1 unused +2 SETofKB_VMOD vmods +</literallayout> + + +<literallayout class='monospaced'>1 CARD8 opcode +1 9 xkb-opcode +2 9+(I/4) request-length +2 KB_DEVICESPEC deviceSpec +2 SETofKB_MAPPART present +2 SETofKB_SETMAPFLAGS flags + #0001 SetMapResizeTypes + #0002 SetMapRecomputeActions +1 KEYCODE minKeyCode +1 KEYCODE maxKeyCode +1 CARD8 firstType +1 t nTypes +1 KEYCODE firstKeySym +1 s nKeySyms +2 S totalSyms +1 KEYCODE firstKeyAction +1 a nKeyActions +2 A totalActions +1 KEYCODE firstKeyBehavior +1 b nKeyBehaviors +1 B totalKeyBehaviors +1 KEYCODE firstKeyExplicit +1 e nKeyExplicit +1 E totalKeyExplicit +1 KEYCODE firstModMapKey +1 m nModMapKeys +1 M totalModMapKeys +1 KEYCODE firstVModMapKey +1 v nVModMapKeys +1 V totalVModMapKeys +2 SETofKB_VMOD virtualMods (has n bits set to 1) +I LISTofITEMs values + SETofKB_MAPPART (present) + XkbKeyTypes types + XkbKeySymbols syms + XkbKeyActions actions.count,actions.actions + XkbKeyBehaviors behaviors + XkbVirtualMods vmods + XkbExplicitComponents explicit + XkbModifierMap modmap + XkbVirtualModMap vmodmap +</literallayout> + +<literallayout class='monospaced'>ITEMs +T0+..Tt LISTofKB_SETKEYTYPE types +8s+4S LISTofKB_KEYSYMMAP syms +a LISTofCARD8 actions.count +p unused,p=pad(a) +8A LISTofKB_ACTION actions.actions +4B LISTofKB_SETBEHAVIOR behaviors +v LISTofSETofKEYMASK vmods +p unused, p=pad(v) +2E LISTofKB_SETEXPLICIT explicit +p unused,p=pad(2E) +2M LISTofKB_KEYMODMAP modmap +P unused, p=pad(2M) +4V LISTofKB_KEYVMODMAP vmodmap +</literallayout> + +<literallayout class='monospaced'>KB_SETKEYTYPE 8+4m+[4m] +1 SETofKEYMASK mask +1 SETofKEYMASK realMods +2 SETofKB_VMOD virtualMods +1 CARD8 numLevels +1 m nMapEntries +1 BOOL preserve +1 unused +4m LISTofKB_KTSETMAPENTRY entries +[4m] LISTofKB_MODDEF preserveEntries (if preserve==TRUE) +</literallayout> + +<literallayout class='monospaced'>KB_KTSETMAPENTRY +1 CARD8 level +1 SETofKEYMASK realMods +2 SETofKB_VMOD virtualMods +</literallayout> + + +<literallayout class='monospaced'>1 ?? opcode +1 10 xkb-opcode +2 3 request-length +2 KB_DEVICESPEC deviceSpec +1 SETofKB_GROUP groups +1 BOOL getAllSI +2 CARD16 firstSI +2 CARD16 nSI +</literallayout> + +<literallayout class='monospaced'>1 1 Reply +1 CARD8 deviceID +2 CARD16 sequence number +4 (16n+4g)/4 length +1 SETofKB_GROUP groupsRtrn (has g bits set to 1) +1 unused +2 CARD16 firstSIRtrn +2 n nSIRtrn +2 CARD16 nTotalSI +16 unused +16n LISTofKB_SYMINTERPRET siRtrn +4g LISTofKB_MODDEF groupRtrn +</literallayout> + + +<literallayout class='monospaced'>1 ?? opcode +1 11 xkb-opcode +2 4+(16n+4g) request-length +2 KB_DEVICESPEC deviceSpec +1 unused +1 BOOL recomputeActions +1 BOOL truncateSI +1 SETofKB_GROUP groups (has g bits set to 1) +2 CARD16 firstSI +2 n nSI +2 unused +16n LISTofKB_SYMINTERPRET si +4g LISTofKB_MODDEF groupMaps +</literallayout> + +<literallayout class='monospaced'>1 ?? opcode +1 12 xkb-opcode +2 2 request-length +2 KB_DEVICESPEC deviceSpec +</literallayout> + +<literallayout class='monospaced'>ITEMs +2 unused +</literallayout> + +<literallayout class='monospaced'>1 1 Reply +1 CARD8 deviceID +2 CARD16 sequence number +4 0 length +4 SETofKB_INDICATOR state +20 unused +</literallayout> + + +<literallayout class='monospaced'>1 ?? opcode +1 13 xkb-opcode +2 3 request-length +2 KB_DEVICESPEC deviceSpec +2 unused +4 SETofKB_INDICATOR which +</literallayout> + +<literallayout class='monospaced'>1 1 Reply +1 CARD8 deviceID +2 CARD16 sequence number +4 12n/4 length +4 SETofKB_INDICATOR which (has n bits set to 1) +4 SETofKB_INDICATOR realIndicators +1 n nIndicators +15 unused +12n LISTofKB_INDICATORMAP maps +</literallayout> + + +<literallayout class='monospaced'>1 ?? opcode +1 14 xkb-opcode +2 3+3n request-length +2 KB_DEVICESPEC deviceSpec +2 unused +4 SETofKB_INDICATOR which (has n bits set to 1) +12n LISTofKB_INDICATORMAP maps +</literallayout> + +<literallayout class='monospaced'>1 CARD8 opcode +1 15 xkb-opcode +2 4 request-length +2 KB_DEVICESPEC deviceSpec +2 KB_LEDCLASSSPEC ledClass +2 KB_IDSPEC ledID +2 unused +4 ATOM indicator +</literallayout> + +<literallayout class='monospaced'>1 1 Reply +1 CARD8 deviceID +2 CARD16 sequence number +4 0 length +4 ATOM indicator +1 BOOL found +1 BOOL on +1 BOOL realIndicator +1 KB_INDICATOR ndx +1 SETofKB_IMFLAGS map.flags +1 SETofKB_IMGROUPSWHICH map.whichGroups +1 SETofKB_GROUPS map.groups +1 SETofKB_IMMODSWHICH map.whichMods +1 SETofKEYMASK map.mods +1 SETofKEYMASK map.realMods +2 SETofKB_VMOD map.vmods +4 SETofKB_BOOLCTRL map.ctrls +1 BOOL supported +3 unused +</literallayout> + + +<literallayout class='monospaced'>1 ?? opcode +1 16 xkb-opcode +2 8 request-length +2 KB_DEVICESPEC deviceSpec +2 KB_LEDCLASSSPEC ledClass +2 KB_IDSPEC ledID +2 unused +4 ATOM indicator +1 BOOL setState +1 BOOL on +1 BOOL setMap +1 BOOL createMap +1 unused +1 SETofKB_IMFLAGS map.flags +1 SETofKB_IMGROUPSWHICH map.whichGroups +1 SETofKB_GROUP map.groups +1 SETofKB_IMMODSWHICH map.whichMods +1 SETofKEYMASK map.realMods +2 SETofKB_VMOD map.vmods +4 SETofKB_BOOLCTRL map.ctrls +</literallayout> + +<literallayout class='monospaced'>1 CARD8 opcode +1 17 xkb-opcode +2 3 request-length +2 KB_DEVICESPEC deviceSpec +2 unused +4 SETofKB_NAMEDETAIL which +</literallayout> + +<literallayout class='monospaced'>1 1 Reply +1 CARD8 deviceID +2 CARD16 sequence number +4 V/4 length +4 SETofKB_NAMEDETAIL which +1 KEYCODE minKeyCode +1 KEYCODE maxKeyCode +1 t nTypes +1 SETofKB_GROUP groupNames (has g bits set to 1) +2 SETofKB_VMOD virtualMods (has v bits set to 1) +1 KEYCODE firstKey +1 k nKeys +4 SETofKB_INDICATOR indicators (has i bits set to 1) +1 r nRadioGroups +1 a nKeyAliases +2 l nKTLevels +4 unused +V LISTofITEMs valueList + SETofKB_NAMEDETAIL (which) + XkbKeycodesName keycodesName + XkbGeometryName geometryName + XkbSymbolsName symbolsName + XkbPhySymbolsName physSymbolsName + XkbTypesName typesName + XkbCompatName compatName + XkbKeyTypeNames typeNames + XkbKTLevelNames nLevelsPerType, ktLevelNames + XkbIndicatorNames indicatorNames + XkbVirtualModNames virtualModNames + XkbGroupNames groupNames + XkbKeyNames keyNames + XkbKeyAliases keyAliases + XkbRGNames radioGroupNames +</literallayout> + +<literallayout class='monospaced'>ITEMs +4 ATOM keycodesName +4 ATOM geometryName +4 ATOM symbolsName +4 ATOM physSymbolsName +4 ATOM typesName +4 ATOM compatName +4t LISTofATOM typeNames +l LISTofCARD8 nLevelsPerType, sum of all elements=L +p unused, p=pad(l) +4L LISTofATOM ktLevelNames +4i LISTofATOM indicatorNames +4v LISTofATOM virtualModNames +4g LISTofATOM groupNames +4k LISTofKB_KEYNAME keyNames +8a LISTofKB_KEYALIAS keyAliases +4r LISTofATOM radioGroupNames +</literallayout> + + +<literallayout class='monospaced'>1 CARD8 opcode +1 18 xkb-opcode +2 7+(V/4) request-length +2 KB_DEVICESPEC deviceSpec +2 SETofKB_VMOD virtualMods +4 SETofKB_NAMEDETAIL which +1 CARD8 firstType +1 t nTypes +1 CARD8 firstKTLevel +1 l nKTLevels +4 SETofKB_INDICATOR indicators (has i bits set to 1) +1 SETofKB_GROUP groupNames (has g bits set to 1) +1 r nRadioGroups +1 KEYCODE firstKey +1 k nKeys +1 a nKeyAliases +1 unused +2 L totalKTLevelNames +V LISTofITEMs values + SETofKB_NAMEDETAIL (which) + XkbKeycodesName keycodesName + XkbGeometryName geometryName + XkbSymbolsName symbolsName + XkbPhySymbolsName physSymbolsName + XkbTypesName typesName + XkbCompatName compatName + XkbKeyTypeNames typeNames + XkbKTLevelNames nLevelsPerType, ktLevelNames + XkbIndicatorNames indicatorNames + XkbVirtualModNames virtualModNames + XkbGroupNames groupNames + XkbKeyNames keyNames + XkbKeyAliases keyAliases + XkbRGNames radioGroupNames +</literallayout> + +<literallayout class='monospaced'>ITEMs +4 ATOM keycodesName +4 ATOM geometryName +4 ATOM symbolsName +4 ATOM physSymbolsName +4 ATOM typesName +4 ATOM compatName +4t LISTofATOM typeNames +l LISTofCARD8 nLevelsPerType +p unused, p=pad(l) +4L LISTofATOM ktLevelNames +4i LISTofATOM indicatorNames +4v LISTofATOM virtualModNames +4g LISTofATOM groupNames +4k LISTofKB_KEYNAME keyNames +8a LISTofKB_KEYALIAS keyAliases +4r LISTofATOM radioGroupNames +</literallayout> + + +<literallayout class='monospaced'>1 CARD8 opcode +1 19 xkb-opcode +2 3 request-length +2 KB_DEVICESPEC deviceSpec +2 unused +4 ATOM name +</literallayout> + +<literallayout class='monospaced'>1 1 Reply +1 CARD8 deviceID +2 CARD16 sequence number +4 (f+8p+C*+H*+S*+D*+A*)/4 length +4 ATOM name +1 BOOL found +1 unused +2 CARD16 widthMM +2 CARD16 heightMM +2 p nProperties +2 c nColors +2 h nShapes +2 s nSections +2 d nDoodads +2 a nKeyAliases +1 CARD8 baseColorNdx +1 CARD8 labelColorNdx +f KB_COUNTED_STRING16 labelFont +8p LISTofKB_PROPERTY properties +C0+..Cc LISTofKB_COUNTED_STRING16 colors +H0+..Hh LISTofKB_SHAPE shapes +S0+..Ss LISTofKB_SECTION sections +D0+..Dd LISTofKB_DOODAD doodads +A0+..Aa LISTofKB_KEYALIAS keyAliases +</literallayout> + +<literallayout class='monospaced'>KB_PROPERTY 4+n+v +2 n nameLength +n STRING8 name +2 v valueLength +v STRING8 value +</literallayout> + +<literallayout class='monospaced'>KB_SHAPE 8+O* +4 ATOM name +1 o nOutlines +1 CARD8 primaryNdx +1 CARD8 approxNdx +1 unused +O0+..Oo LISTofKB_OUTLINE outlines +</literallayout> + +<literallayout class='monospaced'>KB_OUTLINE 4+4p +1 p nPoints +1 CARD8 cornerRadius +2 unused +4p LISTofKB_POINT points +</literallayout> + +<literallayout class='monospaced'>KB_POINT +2 INT16 x +2 INT16 y +</literallayout> + +<literallayout class='monospaced'>KB_SECTION 20+R*+D*+O* +4 ATOM name +2 INT16 top +2 INT16 left +2 CARD16 width +2 CARD16 height +2 INT16 angle +1 CARD8 priority +1 r nRows +1 d nDoodads +1 o nOverlays +2 unused +R0+..Rr LISTofKB_ROW rows +D0+..Dd LISTofKB_DOODAD doodads +O0+..Oo LISTofKB_OVERLAY overlays +</literallayout> + +<literallayout class='monospaced'>KB_ROW 8+8k +2 INT16 top +2 INT16 left +1 k nKeys +1 BOOL vertical +2 unused +8k LISTofKB_KEY keys +</literallayout> + +<literallayout class='monospaced'>KB_KEY +4 STRING8 name +2 INT16 gap +1 CARD8 shapeNdx +1 CARD8 colorNdx +</literallayout> + +<literallayout class='monospaced'>KB_OVERLAY 8+R* +4 ATOM name +1 r nRows +3 unused +R0+..Rr LISTofKB_OVERLAYROW rows +</literallayout> + +<literallayout class='monospaced'>KB_OVERLAYROW 4+8k +1 CARD8 rowUnder +1 k nKeys +2 unused +8k LISTofKB_OVERLAYKEY keys +</literallayout> + +<literallayout class='monospaced'>KB_OVERLAYKEY +4 STRING8 over +4 STRING8 under +</literallayout> + +<literallayout class='monospaced'>KB_SHAPEDOODAD +4 ATOM name +1 CARD8 type +</literallayout> + +<literallayout class='monospaced'>KB_SHAPEDOODAD + #1 XkbOutlineDoodad + #2 XkbSolidDoodad +1 CARD8 priority +2 INT16 top +2 INT16 left +2 INT16 angle +1 CARD8 colorNdx +1 CARD8 shapeNdx +6 unused +</literallayout> + +<literallayout class='monospaced'>KB_TEXTDOODAD 20+t+f +4 ATOM name +1 CARD8 type + #3 XkbTextDoodad +1 CARD8 priority +2 INT16 top +2 INT16 left +2 INT16 angle +2 CARD16 width +2 CARD16 height +1 CARD8 colorNdx +3 unused +t KB_COUNTED_STRING16 text +f KB_COUNTED_STRING16 font +</literallayout> + +<literallayout class='monospaced'>KB_INDICATORDOODAD +4 ATOM name +1 CARD8 type + #4 XkbIndicatorDoodad +1 CARD8 priority +2 INT16 top +2 INT16 left +2 INT16 angle +1 CARD8 shapeNdx +1 CARD8 onColorNdx +1 CARD8 offColorNdx +5 unused +</literallayout> + +<literallayout class='monospaced'>KB_LOGODOODAD 20+n +4 ATOM name +1 CARD8 type + #5 XkbLogoDoodad +1 CARD8 priority +2 INT16 top +2 INT16 left +2 INT16 angle +1 CARD8 colorNdx +1 CARD8 shapeNdx +6 unused +n KB_COUNTED_STRING16 logoName +</literallayout> + +<literallayout class='monospaced'>KB_DOODAD: + KB_SHAPEDOODAD, or KB_TEXTDOODAD, or + KB_INDICATORDOODAD, or KB_LOGODOODAD +</literallayout> + + +<literallayout class='monospaced'>1 CARD8 opcode +1 20 xkb-opcode +2 7+(f+8p+C*+H*+S*+D*+A*)/4 request-length +2 KB_DEVICESPEC deviceSpec +1 h nShapes +1 s nSections +4 ATOM name +2 CARD16 widthMM +2 CARD16 heightMM +2 p nProperties +2 c nColors +2 d nDoodads +2 a nKeyAliases +1 CARD8 baseColorNdx +1 CARD8 labelColorNdx +2 unused +f KB_COUNTED_STRING16 labelFont +8p LISTofKB_PROPERTY properties +C0+..Cc LISTofKB_COUNTED_STRING16 colors +H0+..Hh LISTofKB_SHAPE shapes +S0+..Ss LISTofKB_SECTION sections +D0+..Dd LISTofKB_DOODAD doodads +A0+..Aa LISTofKB_KEYALIAS keyAliases +</literallayout> + +<literallayout class='monospaced'>1 CARD8 opcode +1 21 xkb-opcode +2 7 request-length +2 KB_DEVICESPEC deviceSpec +2 unused +4 SETofKB_PERCLIENTFLAG change +4 SETofKB_PERCLIENTFLAG value +4 SETofKB_BOOLCTRL ctrlsToChange +4 SETofKB_BOOLCTRL autoCtrls +4 SETofKB_BOOLCTRL autoCtrlValues +</literallayout> + +<literallayout class='monospaced'>1 1 Reply +1 CARD8 deviceID +2 CARD16 sequence number +4 0 length +4 SETofKB_PERCLIENTFLAG supported +4 SETofKB_PERCLIENTFLAG value +4 SETofKB_BOOLCTRL autoCtrls +4 SETofKB_BOOLCTRL autoCtrlValues +8 unused +</literallayout> + + +<literallayout class='monospaced'>1 CARD8 opcode +1 22 xkb-opcode +2 2+(6+m+k+t+c+s+g+p)/4 request-length +2 KB_DEVICESPEC deviceSpec +2 CARD16 maxNames +1 m keymapsSpecLen +m STRING keymapsSpec +1 k keycodesSpecLen +k STRING keycodesSpec +1 t typesSpecLen +t STRING typesSpec +1 c compatMapSpecLen +c STRING compatMapSpec +1 s symbolsSpecLen +s STRING symbolsSpec +1 g geometrySpecLen +g STRING geometrySpec +p unused,p=pad(6+m+k+t+c+s+g) +</literallayout> + +<literallayout class='monospaced'>1 1 Reply +1 CARD8 deviceID +2 CARD16 sequence number +4 (M*+K*+T*+C*+S*+G*+p)/4 length +2 m nKeymaps +2 k nKeycodes +2 t nTypes +2 c nCompatMaps +2 s nSymbols +2 g nGeometries +2 CARD16 extra +10 unused +M0+..Mm LISTofKB_LISTING keymaps +K0+..Kk LISTofKB_LISTING keycodes +T0+..Tt LISTofKB_LISTING types +C0+..Cc LISTofKB_LISTING compatMaps +S0+..Ss LISTofKB_LISTING symbols +G0+..Gg LISTofKB_LISTING geometries +p unused,p=pad(M*+K*+T*+C*+S*+G*) +</literallayout> + +<literallayout class='monospaced'>KB_LISTING 4+n+p +2 CARD16 flags +2 n length +n STRING8 string +p unused,p=pad(n) to a 2-byte boundary +</literallayout> + + +<literallayout class='monospaced'>1 CARD8 opcode +1 23 xkb-opcode +2 3+(6+m+k+t+c+s+g+p)/4 request-length +2 KB_DEVICESPEC deviceSpec +2 SETofKB_GBNDETAILMASK need +2 SETofKB_GBNDETAILMASK want +1 BOOL load +1 unused +1 m keymapsSpecLen +m STRING8 keymapsSpec +1 k keycodesSpecLen +k STRING8 keycodesSpec +1 t typesSpecLen +t STRING8 typesSpec +1 c compatMapSpecLen +c STRING8 compatMapSpec +1 s symbolsSpecLen +s STRING8 symbolsSpec +1 g geometrySpecLen +g STRING8 geometrySpec +p unused,p=pad(6+m+k+t+c+s+g) +</literallayout> + +<literallayout class='monospaced'>1 1 Reply +1 CARD8 deviceID +2 CARD16 sequence number +4 V/4 length +1 KEYCODE minKeyCode +1 KEYCODE maxKeyCode +1 BOOL loaded +1 BOOL newKeyboard +2 SETofKB_GBNDETAILMASK found +2 SETofKB_GBNDETAILMASK reported +16 unused +V LISTofITEMs replies + SETofKB_GBNDETAILMASK (reported) + XkbGBN_Types map + XkbGBN_CompatMap compat + XkbGBN_ClientSymbols map + XkbGBN_ServerSymbols map + XkbGBN_IndicatorMap indicators + XkbGBN_KeyNames names + XkbGBN_OtherNames names + XkbGBN_Geometry geometry +</literallayout> + +<literallayout class='monospaced'>ITEMs +M XkbGetMap reply map +C XkbGetCompatMap reply compat +I XkbGetIndicatorMap reply indicators +N XkbGetNames reply names +G XkbGetGeometry reply geometry +</literallayout> + + +<literallayout class='monospaced'>1 CARD8 opcode +1 24 xkb-opcode +2 4 request-length +2 KB_DEVICESPEC deviceSpec +2 SETofKB_DEVFEATURE wanted +1 BOOL allButtons +1 CARD8 firstButton +1 CARD8 nButtons +1 unused +2 KB_LEDCLASSSPEC ledClass +2 KB_IDSPEC ledID +</literallayout> + +<literallayout class='monospaced'>1 1 Reply +1 CARD8 deviceID +2 CARD16 sequence number +4 (2+n+p+8b+L*)/4 length +2 SETofKB_DEVFEATURE present +2 SETofKB_FEATURE supported +2 SETofKB_FEATURE unsupported +2 l nDeviceLedFBs +1 CARD8 firstBtnWanted +1 CARD8 nBtnsWanted +1 CARD8 firstBtnRtrn +1 b nBtnsRtrn +1 CARD8 totalBtns +1 BOOL hasOwnState +2 SETofKB_IDRESULT dfltKbdFB +2 SETofKB_IDRESULT dfltLedFB +2 unused +4 ATOM devType +2 n nameLen +n STRING8 name +p unused,p=pad(2+n) +8b LISTofKB_ACTION btnActions +L0+..Ll LISTofKB_DEVICELEDINFO leds +</literallayout> + +<literallayout class='monospaced'>KB_DEVICELEDINFO 20+4n+12m +2 KB_LEDCLASSSPEC ledClass +2 KB_IDSPEC ledID +4 SETofKB_INDICATOR namesPresent (has n bits set to 1) +4 SETofKB_INDICATOR mapsPresent (has m bits set to 1) +4 SETofKB_INDICATOR physIndicators +4 SETofKB_INDICATOR state +4n LISTofATOM names +12m LISTofKB_INDICATORMAP maps +</literallayout> + + +<literallayout class='monospaced'>1 ?? opcode +1 25 xkb-opcode +2 3+(8b+L*)/4 request-length +2 KB_DEVICESPEC deviceSpec +1 CARD8 firstBtn +1 b nBtns +2 SETofKB_DEVFEATURE change +2 l nDeviceLedFBs +8b LISTofKB_ACTION btnActions +L0+..Ll LISTofKB_DEVICELEDINFO leds + Encoding of KB_DEVICELEDINFO is as for XkbGetDeviceInfo +</literallayout> + +<literallayout class='monospaced'>1 ?? opcode +1 101 xkb-opcode +2 6+(n+p)/4 request-length +2 n msgLength +2 unused +4 CARD32 affectFlags +4 CARD32 flags +4 CARD32 affectCtrls +4 CARD32 ctrls +n STRING8 message +p unused, p=pad(n) +</literallayout> + +<literallayout class='monospaced'>1 1 Reply +1 unused +2 CARD16 sequence number +4 0 length +4 CARD32 currentFlags +4 CARD32 currentCtrls +4 CARD32 supportedFlags +4 CARD32 supportedCtrls +8 unused +</literallayout> + + +</sect1> +<sect1 id='appD::Events'> +<title>Events</title> + +<literallayout class='monospaced'>1 ?? code +1 0 xkb code +2 CARD16 sequence number +4 TIMESTAMP time +1 CARD8 deviceID +1 CARD8 oldDeviceID +1 KEYCODE minKeyCode +1 KEYCODE maxKeyCode +1 KEYCODE oldMinKeyCode +1 KEYCODE oldMaxKeyCode +1 CARD8 requestMajor +1 CARD8 requestMinor +2 SETofKB_NKNDETAIL changed +14 unused +</literallayout> + +<literallayout class='monospaced'>1 ?? code +1 1 xkb code +2 CARD16 sequence number +4 TIMESTAMP time +1 CARD8 deviceID +1 SETofBUTMASK ptrBtnActions +2 SETofKB_MAPPART changed +1 KEYCODE minKeyCode +1 KEYCODE maxKeyCode +1 CARD8 firstType +1 CARD8 nTypes +1 KEYCODE firstKeySym +1 CARD8 nKeySyms +1 KEYCODE firstKeyAct +1 CARD8 nKeyActs +1 KEYCODE firstKeyBehavior +1 CARD8 nKeyBehavior +1 KEYCODE firstKeyExplicit +1 CARD8 nKeyExplicit +1 KEYCODE firstModMapKey +1 CARD8 nModMapKeys +1 KEYCODE firstVModMapKey +1 CARD8 nVModMapKeys +2 SETofKB_VMOD virtualMods +2 unused +</literallayout> + +<literallayout class='monospaced'>1 ?? code +1 2 xkb code +2 CARD16 sequence number +4 TIMESTAMP time +1 CARD8 deviceID +1 SETofKEYMASK mods +1 SETofKEYMASK baseMods +1 SETofKEYMASK latchedMods +1 SETofKEYMASK lockedMods +1 KB_GROUP group +2 INT16 baseGroup +2 INT16 latchedGroup +1 KB_GROUP lockedGroup +1 SETofKEYMASK compatState +1 SETofKEYMASK grabMods +1 SETofKEYMASK compatGrabMods +1 SETofKEYMASK lookupMods +1 SETofKEYMASK compatLookupMods +2 SETofBUTMASK ptrBtnState +2 SETofKB_STATEPART changed +1 KEYCODE keycode +1 CARD8 eventType +1 CARD8 requestMajor +1 CARD8 requestMinor +</literallayout> + +<literallayout class='monospaced'>1 ?? code +1 3 xkb code +2 CARD16 sequence number +4 TIMESTAMP time +1 CARD8 deviceID +1 CARD8 numGroups +2 unused +4 SETofKB_CONTROL changedControls +4 SETofKB_BOOLCTRL enabledControls +4 SETofKB_BOOLCTRL enabledControlChanges +1 KEYCODE keycode +1 CARD8 eventType +1 CARD8 requestMajor +1 CARD8 requestMinor +4 unused +</literallayout> + +<literallayout class='monospaced'>1 ?? code +1 4 xkb code +2 CARD16 sequence number +4 TIMESTAMP time +1 CARD8 deviceID +3 unused +4 SETofKB_INDICATOR state +4 SETofKB_INDICATOR stateChanged +12 unused +</literallayout> + +<literallayout class='monospaced'>1 ?? code +1 5 xkb code +2 CARD16 sequence number +4 TIMESTAMP time +1 CARD8 deviceID +3 unused +4 SETofKB_INDICATOR state +4 SETofKB_INDICATOR mapChanged +12 unused +</literallayout> + +<literallayout class='monospaced'>1 ?? code +1 6 xkb code +2 CARD16 sequence number +4 TIMESTAMP time +1 CARD8 deviceID +1 unused +2 SETofKB_NAMEDETAIL changed +1 CARD8 firstType +1 CARD8 nTypes +1 CARD8 firstLevelName +1 CARD8 nLevelNames +1 unused +1 CARD8 nRadioGroups +1 CARD8 nKeyAliases +1 SETofKB_GROUP changedGroupNames +2 SETofKB_VMOD changedVirtualMods +1 KEYCODE firstKey +1 CARD8 nKeys +4 SETofKB_INDICATOR changedIndicators +4 unused +</literallayout> + +<literallayout class='monospaced'>1 ?? code +1 7 xkb code +2 CARD16 sequence number +4 TIMESTAMP time +1 CARD8 deviceID +1 SETofKB_GROUP changedGroups +2 CARD16 firstSI +2 CARD16 nSI +2 CARD16 nTotalSI +16 unused +</literallayout> + +<literallayout class='monospaced'>1 ?? code +1 8 xkb code +2 CARD16 sequence number +4 TIMESTAMP time +1 CARD8 deviceID +1 KB_BELLCLASSRESULT bellClass +1 CARD8 bellID +1 CARD8 percent +2 CARD16 pitch +2 CARD16 duration +4 ATOM name +4 WINDOW window +1 BOOL eventOnly +7 unused +</literallayout> + +<literallayout class='monospaced'>1 ?? code +1 9 xkb code +2 CARD16 sequence number +4 TIMESTAMP time +1 CARD8 deviceID +1 KEYCODE keycode +1 BOOL press +1 BOOL keyEventFollows +1 SETofKEYMASK mods +1 KB_GROUP group +8 STRING8 message +10 unused +</literallayout> + +<literallayout class='monospaced'>1 ?? code +1 10 xkb code +2 CARD16 sequence number +4 TIMESTAMP time +1 CARD8 deviceID +1 KEYCODE keycode +2 SETofKB_AXNDETAIL detail +2 CARD16 slowKeysDelay +2 CARD16 debounceDelay +</literallayout> + +<literallayout class='monospaced'>1 ?? code +16 unused +</literallayout> + +<literallayout class='monospaced'>1 ?? code +1 11 xkb code +2 CARD16 sequence number +4 TIMESTAMP time +1 CARD8 deviceID +1 unused +2 SETofKB_XIDETAIL reason +2 KB_LEDCLASSRESULT ledClass +2 CARD8 ledID +4 SETofKB_INDICATOR ledsDefined +4 SETofKB_INDICATOR ledState +1 CARD8 firstButton +1 CARD8 nButtons +2 SETofKB_XIFEATURE supported +2 SETofKB_XIFEATURE unsupported +2 unused +</literallayout> + +</sect1> +</appendix> |