xenocara/proto/kbproto/specs/appD.xml
2015-05-10 09:21:37 +00:00

2097 lines
66 KiB
XML

<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&amp;(~clear)&amp;(~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>