.\" $Xorg: X11.encoding,v 1.3 2000/08/17 19:42:23 cpqbld Exp $ .\" $XFree86$ \& .sp 1 .ps 11 .nr PS 11 .XS Appendix B \- Protocol Encoding .XE .ce 3 \s+1\fBAppendix B\fP\s-1 \s+1\fBProtocol Encoding\fP\s-1 .sp 2 .LP .\"The sections in this appendix correspond to their number counterparts .\"in the protocol document. .SH Syntactic Conventions .LP All numbers are in decimal, unless prefixed with #x, in which case they are in hexadecimal (base 16). .LP The general syntax used to describe requests, replies, errors, events, and compound types is: .LP .ps 9 .nr PS 9 .Ds .R .PN NameofThing encode-form ... encode-form .De .ps 11 .nr PS 11 .LP Each encode-form describes a single component. .LP For components described in the protocol as: .LP .ps 9 .nr PS 9 .Ds .R name: TYPE .De .ps 11 .nr PS 11 .LP the encode-form is: .LP .ps 9 .nr PS 9 .Ds .TA 1i 1.5i 2.5i .ta 1i 1.5i 2.5i .R N TYPE name .De .ps 11 .nr PS 11 .LP N is the number of bytes occupied in the data stream, and TYPE is the interpretation of those bytes. For example, .LP .ps 9 .nr PS 9 .Ds .TA 1i 1.5i .ta 1i 1.5i .R depth: CARD8 .De .ps 11 .nr PS 11 .LP becomes: .LP .ps 9 .nr PS 9 .Ds .R .TA 1i 1.5i 2.5i .ta 1i 1.5i 2.5i 1 CARD8 depth .De .ps 11 .nr PS 11 .LP For components with a static numeric value the encode-form is: .LP .ps 9 .nr PS 9 .Ds .TA 1i 1.5i 2.5i .ta 1i 1.5i 2.5i .R N value name .De .ps 11 .nr PS 11 .LP The value is always interpreted as an N-byte unsigned integer. For example, the first two bytes of a .PN Window error are always zero (indicating an error in general) and three (indicating the .PN Window error in particular): .LP .ps 9 .nr PS 9 .Ds .TA 1i 1.5i 2.5i .ta 1i 1.5i 2.5i .R 1 0 Error 1 3 code .De .ps 11 .nr PS 11 .LP For components described in the protocol as: .RS .ps 9 .nr PS 9 .LP name: .Pn { Name1 ,..., .PN NameI } .RE .ps 11 .nr PS 11 .LP the encode-form is: .LP .ps 9 .nr PS 9 .Ds .TA 1i 1.5i 2.5i .ta 1i 1.5i 2.5i .R N name value1 Name1 ... valueI NameI .De .ps 11 .nr PS 11 .LP The value is always interpreted as an N-byte unsigned integer. Note that the size of N is sometimes larger than that strictly required to encode the values. For example: .RS .ps 9 .nr PS 9 .LP class: .Pn { InputOutput , .PN InputOnly , .PN CopyFromParent } .RE .ps 11 .nr PS 11 .LP becomes: .LP .ps 9 .nr PS 9 .Ds .TA 1i 1.5i 2.5i 3i .ta 1i 1.5i 2.5i 3i .R 2 class 0 CopyFromParent 1 InputOutput 2 InputOnly .De .ps 11 .nr PS 11 .LP For components described in the protocol as: .RS .ps 9 .nr PS 9 .LP NAME: TYPE or .PN Alternative1 ...or .PN AlternativeI .RE .ps 11 .nr PS 11 .LP the encode-form is: .LP .ps 9 .nr PS 9 .Ds .TA 1i 1.5i 2i 2.5i 3i .ta 1i 1.5i 2i 2.5i 3i .R N TYPE NAME value1 Alternative1 ... valueI AlternativeI .De .ps 11 .nr PS 11 .LP The alternative values are guaranteed not to conflict with the encoding of TYPE. For example: .RS .ps 9 .nr PS 9 .LP destination: WINDOW or .PN PointerWindow or .PN InputFocus .RE .ps 11 .nr PS 11 .LP becomes: .LP .ps 9 .nr PS 9 .Ds .TA 1i 1.5i 2.5i .ta 1i 1.5i 2.5i .R 4 WINDOW destination 0 PointerWindow 1 InputFocus .De .ps 11 .nr PS 11 .LP For components described in the protocol as: .LP .ps 9 .nr PS 9 .Ds .TA 1i 1.5i .ta 1i 1.5i .R value-mask: BITMASK .De .ps 11 .nr PS 11 .LP the encode-form is: .LP .ps 9 .nr PS 9 .Ds .TA 1i 1.5i 2i 2.5i .ta 1i 1.5i 2i 2.5i .R N BITMASK value-mask mask1 mask-name1 ... maskI mask-nameI .De .ps 11 .nr PS 11 .LP The individual bits in the mask are specified and named, and N is 2 or 4. The most-significant bit in a BITMASK is reserved for use in defining chained (multiword) bitmasks, as extensions augment existing core requests. The precise interpretation of this bit is not yet defined here, although a probable mechanism is that a 1-bit indicates that another N bytes of bitmask follows, with bits within the overall mask still interpreted from least-significant to most-significant with an N-byte unit, with N-byte units interpreted in stream order, and with the overall mask being byte-swapped in individual N-byte units. .LP For LISTofVALUE encodings, the request is followed by a section of the form: .LP .ps 9 .nr PS 9 .Ds .TA 1i 1.5i .ta 1i 1.5i .R VALUEs encode-form ... encode-form .De .ps 11 .nr PS 11 .LP listing an encode-form for each VALUE. The NAME in each encode-form keys to the corresponding BITMASK bit. The encoding of a VALUE always occupies four bytes, but the number of bytes specified in the encoding-form indicates how many of the least-significant bytes are actually used; the remaining bytes are unused and their values do not matter. .LP In various cases, the number of bytes occupied by a component will be specified by a lowercase single-letter variable name instead of a specific numeric value, and often some other component will have its value specified as a simple numeric expression involving these variables. Components specified with such expressions are always interpreted as unsigned integers. The scope of such variables is always just the enclosing request, reply, error, event, or compound type structure. For example: .LP .ps 9 .nr PS 9 .Ds .TA 1i 1.5i 2i 2.5i .ta 1i 1.5i 2i 2.5i .R 2 3+n request length 4n LISTofPOINT points .De .ps 11 .nr PS 11 .LP For unused bytes (the values of the bytes are undefined and do no matter), the encode-form is: .LP .ps 9 .nr PS 9 .Ds .R .TA 1i 1.5i 2i 2.5i .ta 1i 1.5i 2i 2.5i N unused .De .ps 11 .nr PS 11 .LP If the number of unused bytes is variable, the encode-form typically is: .LP .ps 9 .nr PS 9 .Ds .TA 1i 1.5i 2i 2.5i .ta 1i 1.5i 2i 2.5i .R p unused, p=pad(E) .De .ps 11 .nr PS 11 .LP where E is some expression, and pad(E) is the number of bytes needed to round E up to a multiple of four. .LP .ps 9 .nr PS 9 .Ds .TA 1i 1.5i 2i 2.5i .ta 1i 1.5i 2i 2.5i .R pad(E) = (4 - (E mod 4)) mod 4 .De .ps 11 .nr PS 11 .SH Common Types .ps 9 .nr PS 9 .LP LISTofFOO .ps 11 .nr PS 11 .IP In this document the LISTof notation strictly means some number of repetitions of the FOO encoding; the actual length of the list is encoded elsewhere. .ps 9 .nr PS 9 .LP SETofFOO .ps 11 .nr PS 11 .IP A set is always represented by a bitmask, with a 1-bit indicating presence in the set. .ps 9 .nr PS 9 .LP BITMASK: CARD32 .LP WINDOW: CARD32 .LP PIXMAP: CARD32 .LP CURSOR: CARD32 .LP FONT: CARD32 .LP GCONTEXT: CARD32 .LP COLORMAP: CARD32 .LP DRAWABLE: CARD32 .LP FONTABLE: CARD32 .LP ATOM: CARD32 .LP VISUALID: CARD32 .LP BYTE: 8-bit value .LP INT8: 8-bit signed integer .LP INT16: 16-bit signed integer .LP INT32: 32-bit signed integer .LP CARD8: 8-bit unsigned integer .LP CARD16: 16-bit unsigned integer .LP CARD32: 32-bit unsigned integer .LP TIMESTAMP: CARD32 .LP .Ds 0 .TA .75i 1.75i .ta .75i 1.75i .R BITGRAVITY 0 Forget 1 NorthWest 2 North 3 NorthEast 4 West 5 Center 6 East 7 SouthWest 8 South 9 SouthEast 10 Static .De .LP .Ds 0 .TA .75i 1.75i .ta .75i 1.75i .R WINGRAVITY 0 Unmap 1 NorthWest 2 North 3 NorthEast 4 West 5 Center 6 East 7 SouthWest 8 South 9 SouthEast 10 Static .De .LP .Ds 0 .TA .75i 1.75i .ta .75i 1.75i .R BOOL 0 False 1 True .De .LP .Ds 0 .TA .75i 1.75i .ta .75i 1.75i .R SETofEVENT #x00000001 KeyPress #x00000002 KeyRelease #x00000004 ButtonPress #x00000008 ButtonRelease #x00000010 EnterWindow #x00000020 LeaveWindow #x00000040 PointerMotion #x00000080 PointerMotionHint #x00000100 Button1Motion #x00000200 Button2Motion #x00000400 Button3Motion #x00000800 Button4Motion #x00001000 Button5Motion #x00002000 ButtonMotion #x00004000 KeymapState #x00008000 Exposure #x00010000 VisibilityChange #x00020000 StructureNotify #x00040000 ResizeRedirect #x00080000 SubstructureNotify #x00100000 SubstructureRedirect #x00200000 FocusChange #x00400000 PropertyChange #x00800000 ColormapChange #x01000000 OwnerGrabButton #xFE000000 unused but must be zero .De .LP .Ds 0 .TA .75i 1.75i .ta .75i 1.75i .R SETofPOINTEREVENT encodings are the same as for SETofEVENT, except with #xFFFF8003 unused but must be zero .De .LP .Ds 0 .TA .75i 1.75i .ta .75i 1.75i .R SETofDEVICEEVENT encodings are the same as for SETofEVENT, except with #xFFFFC0B0 unused but must be zero .De KEYSYM: CARD32 .LP KEYCODE: CARD8 .LP BUTTON: CARD8 .LP .Ds 0 .TA .75i 1.75i .ta .75i 1.75i .R SETofKEYBUTMASK #x0001 Shift #x0002 Lock #x0004 Control #x0008 Mod1 #x0010 Mod2 #x0020 Mod3 #x0040 Mod4 #x0080 Mod5 #x0100 Button1 #x0200 Button2 #x0400 Button3 #x0800 Button4 #x1000 Button5 #xE000 unused but must be zero .De .LP .Ds 0 .TA .75i 1.75i .ta .75i 1.75i .R SETofKEYMASK encodings are the same as for SETofKEYBUTMASK, except with #xFF00 unused but must be zero .De .LP STRING8: LISTofCARD8 .LP STRING16: LISTofCHAR2B .LP .Ds 0 .TA .2i .5i 1.5i .ta .2i .5i 1.5i .R CHAR2B 1 CARD8 byte1 1 CARD8 byte2 .De .LP .Ds 0 .TA .2i .5i 1.5i .ta .2i .5i 1.5i .R POINT 2 INT16 x 2 INT16 y .De .LP .Ds 0 .TA .2i .5i 1.5i .ta .2i .5i 1.5i .R RECTANGLE 2 INT16 x 2 INT16 y 2 CARD16 width 2 CARD16 height .De .LP .Ds 0 .TA .2i .5i 1.5i .ta .2i .5i 1.5i .R ARC 2 INT16 x 2 INT16 y 2 CARD16 width 2 CARD16 height 2 INT16 angle1 2 INT16 angle2 .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R HOST 1 family 0 Internet 1 DECnet 2 Chaos 5 ServerInterpreted 6 InternetV6 1 unused 2 n length of address n LISTofBYTE address p unused, p=pad(n) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R STR 1 n length of name in bytes n STRING8 name .De .ps 11 .nr PS 11 .SH Errors .LP .ps 9 .nr PS 9 .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN Request 1 0 Error 1 1 code 2 CARD16 sequence number 4 unused 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN Value 1 0 Error 1 2 code 2 CARD16 sequence number 4 <32-bits> bad value 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN Window 1 0 Error 1 3 code 2 CARD16 sequence number 4 CARD32 bad resource id 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN Pixmap 1 0 Error 1 4 code 2 CARD16 sequence number 4 CARD32 bad resource id 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN Atom 1 0 Error 1 5 code 2 CARD16 sequence number 4 CARD32 bad atom id 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN Cursor 1 0 Error 1 6 code 2 CARD16 sequence number 4 CARD32 bad resource id 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN Font 1 0 Error 1 7 code 2 CARD16 sequence number 4 CARD32 bad resource id 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN Match 1 0 Error 1 8 code 2 CARD16 sequence number 4 unused 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN Drawable 1 0 Error 1 9 code 2 CARD16 sequence number 4 CARD32 bad resource id 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN Access 1 0 Error 1 10 code 2 CARD16 sequence number 4 unused 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN Alloc 1 0 Error 1 11 code 2 CARD16 sequence number 4 unused 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN Colormap 1 0 Error 1 12 code 2 CARD16 sequence number 4 CARD32 bad resource id 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GContext 1 0 Error 1 13 code 2 CARD16 sequence number 4 CARD32 bad resource id 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN IDChoice 1 0 Error 1 14 code 2 CARD16 sequence number 4 CARD32 bad resource id 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN Name 1 0 Error 1 15 code 2 CARD16 sequence number 4 unused 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN Length 1 0 Error 1 16 code 2 CARD16 sequence number 4 unused 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN Implementation 1 0 Error 1 17 code 2 CARD16 sequence number 4 unused 2 CARD16 minor opcode 1 CARD8 major opcode 21 unused .De .ps 11 .nr PS 11 .SH Keyboards .LP KEYCODE values are always greater than 7 (and less than 256). .LP KEYSYM values with the bit #x10000000 set are reserved as vendor-specific. .LP The names and encodings of the standard KEYSYM values are contained in Appendix A, Keysym Encoding. .SH Pointers .LP BUTTON values are numbered starting with one. .SH Predefined Atoms .LP .ps 9 .nr PS 9 .Ds 0 .TA 1.75i 3i 4.75i .ta 1.75i 3i 4.75i PRIMARY 1 WM_NORMAL_HINTS 40 SECONDARY 2 WM_SIZE_HINTS 41 ARC 3 WM_ZOOM_HINTS 42 ATOM 4 MIN_SPACE 43 BITMAP 5 NORM_SPACE 44 CARDINAL 6 MAX_SPACE 45 COLORMAP 7 END_SPACE 46 CURSOR 8 SUPERSCRIPT_X 47 CUT_BUFFER0 9 SUPERSCRIPT_Y 48 CUT_BUFFER1 10 SUBSCRIPT_X 49 CUT_BUFFER2 11 SUBSCRIPT_Y 50 CUT_BUFFER3 12 UNDERLINE_POSITION 51 CUT_BUFFER4 13 UNDERLINE_THICKNESS 52 CUT_BUFFER5 14 STRIKEOUT_ASCENT 53 CUT_BUFFER6 15 STRIKEOUT_DESCENT 54 CUT_BUFFER7 16 ITALIC_ANGLE 55 DRAWABLE 17 X_HEIGHT 56 FONT 18 QUAD_WIDTH 57 INTEGER 19 WEIGHT 58 PIXMAP 20 POINT_SIZE 59 POINT 21 RESOLUTION 60 RECTANGLE 22 COPYRIGHT 61 RESOURCE_MANAGER 23 NOTICE 62 RGB_COLOR_MAP 24 FONT_NAME 63 RGB_BEST_MAP 25 FAMILY_NAME 64 RGB_BLUE_MAP 26 FULL_NAME 65 RGB_DEFAULT_MAP 27 CAP_HEIGHT 66 RGB_GRAY_MAP 28 WM_CLASS 67 RGB_GREEN_MAP 29 WM_TRANSIENT_FOR 68 RGB_RED_MAP 30 STRING 31 VISUALID 32 WINDOW 33 WM_COMMAND 34 WM_HINTS 35 WM_CLIENT_MACHINE 36 WM_ICON_NAME 37 WM_ICON_SIZE 38 WM_NAME 39 .De .ps 11 .nr PS 11 .SH Connection Setup .LP For TCP connections, displays on a given host are numbered starting from 0, and the server for display N listens and accepts connections on port 6000 + N. For DECnet connections, displays on a given host are numbered starting from 0, and the server for display N listens and accepts connections on the object name obtained by concatenating ``X$X'' with the decimal representation of N, for example, X$X0 and X$X1. .LP Information sent by the client at connection setup: .LP .ps 9 .nr PS 9 .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R 1 byte-order #x42 MSB first #x6C LSB first 1 unused 2 CARD16 protocol-major-version 2 CARD16 protocol-minor-version 2 n length of authorization-protocol-name 2 d length of authorization-protocol-data 2 unused n STRING8 authorization-protocol-name p unused, p=pad(n) d STRING8 authorization-protocol-data q unused, q=pad(d) .De .ps 11 .nr PS 11 .LP Except where explicitly noted in the protocol, all 16-bit and 32-bit quantities sent by the client must be transmitted with the specified byte order, and all 16-bit and 32-bit quantities returned by the server will be transmitted with this byte order. .LP Information received by the client if the connection is refused: .LP .ps 9 .nr PS 9 .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R 1 0 Failed 1 n length of reason in bytes 2 CARD16 protocol-major-version 2 CARD16 protocol-minor-version 2 (n+p)/4 length in 4-byte units of ``additional data'' n STRING8 reason p unused, p=pad(n) .De .ps 11 .nr PS 11 .LP Information received by the client if further authentication is required: .LP .ps 9 .nr PS 9 .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R 1 2 Authenticate 5 unused 2 (n+p)/4 length in 4-byte units of ``additional data'' n STRING8 reason p unused, p=pad(n) .De .ps 11 .nr PS 11 .LP Information received by the client if the connection is accepted: .LP .ps 9 .nr PS 9 .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R 1 1 Success 1 unused 2 CARD16 protocol-major-version 2 CARD16 protocol-minor-version 2 8+2n+(v+p+m)/4 length in 4-byte units of ``additional data'' 4 CARD32 release-number 4 CARD32 resource-id-base 4 CARD32 resource-id-mask 4 CARD32 motion-buffer-size 2 v length of vendor 2 CARD16 maximum-request-length 1 CARD8 number of SCREENs in roots 1 n number for FORMATs in pixmap-formats 1 image-byte-order 0 LSBFirst 1 MSBFirst 1 bitmap-format-bit-order 0 LeastSignificant 1 MostSignificant 1 CARD8 bitmap-format-scanline-unit 1 CARD8 bitmap-format-scanline-pad 1 KEYCODE min-keycode 1 KEYCODE max-keycode 4 unused v STRING8 vendor p unused, p=pad(v) 8n LISTofFORMAT pixmap-formats m LISTofSCREEN roots (m is always a multiple of 4) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R FORMAT 1 CARD8 depth 1 CARD8 bits-per-pixel 1 CARD8 scanline-pad 5 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R SCREEN 4 WINDOW root 4 COLORMAP default-colormap 4 CARD32 white-pixel 4 CARD32 black-pixel 4 SETofEVENT current-input-masks 2 CARD16 width-in-pixels 2 CARD16 height-in-pixels 2 CARD16 width-in-millimeters 2 CARD16 height-in-millimeters 2 CARD16 min-installed-maps 2 CARD16 max-installed-maps 4 VISUALID root-visual 1 backing-stores 0 Never 1 WhenMapped 2 Always 1 BOOL save-unders 1 CARD8 root-depth 1 CARD8 number of DEPTHs in allowed-depths n LISTofDEPTH allowed-depths (n is always a multiple of 4) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R DEPTH 1 CARD8 depth 1 unused 2 n number of VISUALTYPES in visuals 4 unused 24n LISTofVISUALTYPE visuals .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R VISUALTYPE 4 VISUALID visual-id 1 class 0 StaticGray 1 GrayScale 2 StaticColor 3 PseudoColor 4 TrueColor 5 DirectColor 1 CARD8 bits-per-rgb-value 2 CARD16 colormap-entries 4 CARD32 red-mask 4 CARD32 green-mask 4 CARD32 blue-mask 4 unused .De .ps 11 .nr PS 11 .SH Requests .LP .ps 9 .nr PS 9 .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN CreateWindow 1 1 opcode 1 CARD8 depth 2 8+n request length 4 WINDOW wid 4 WINDOW parent 2 INT16 x 2 INT16 y 2 CARD16 width 2 CARD16 height 2 CARD16 border-width 2 class 0 CopyFromParent 1 InputOutput 2 InputOnly 4 VISUALID visual 0 CopyFromParent 4 BITMASK value-mask (has n bits set to 1) #x00000001 background-pixmap #x00000002 background-pixel #x00000004 border-pixmap #x00000008 border-pixel #x00000010 bit-gravity #x00000020 win-gravity #x00000040 backing-store #x00000080 backing-planes #x00000100 backing-pixel #x00000200 override-redirect #x00000400 save-under #x00000800 event-mask #x00001000 do-not-propagate-mask #x00002000 colormap #x00004000 cursor 4n LISTofVALUE value-list .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R VALUEs 4 PIXMAP background-pixmap 0 None 1 ParentRelative 4 CARD32 background-pixel 4 PIXMAP border-pixmap 0 CopyFromParent 4 CARD32 border-pixel 1 BITGRAVITY bit-gravity 1 WINGRAVITY win-gravity 1 backing-store 0 NotUseful 1 WhenMapped 2 Always 4 CARD32 backing-planes 4 CARD32 backing-pixel 1 BOOL override-redirect 1 BOOL save-under 4 SETofEVENT event-mask 4 SETofDEVICEEVENT do-not-propagate-mask 4 COLORMAP colormap 0 CopyFromParent 4 CURSOR cursor 0 None .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ChangeWindowAttributes 1 2 opcode 1 unused 2 3+n request length 4 WINDOW window 4 BITMASK value-mask (has n bits set to 1) encodings are the same as for CreateWindow 4n LISTofVALUE value-list encodings are the same as for CreateWindow .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GetWindowAttributes 1 3 opcode 1 unused 2 2 request length 4 WINDOW window .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 backing-store 0 NotUseful 1 WhenMapped 2 Always 2 CARD16 sequence number 4 3 reply length 4 VISUALID visual 2 class 1 InputOutput 2 InputOnly 1 BITGRAVITY bit-gravity 1 WINGRAVITY win-gravity 4 CARD32 backing-planes 4 CARD32 backing-pixel 1 BOOL save-under 1 BOOL map-is-installed 1 map-state 0 Unmapped 1 Unviewable 2 Viewable 1 BOOL override-redirect 4 COLORMAP colormap 0 None 4 SETofEVENT all-event-masks 4 SETofEVENT your-event-mask 2 SETofDEVICEEVENT do-not-propagate-mask 2 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN DestroyWindow 1 4 opcode 1 unused 2 2 request length 4 WINDOW window .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN DestroySubwindows 1 5 opcode 1 unused 2 2 request length 4 WINDOW window .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ChangeSaveSet 1 6 opcode 1 mode 0 Insert 1 Delete 2 2 request length 4 WINDOW window .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ReparentWindow 1 7 opcode 1 unused 2 4 request length 4 WINDOW window 4 WINDOW parent 2 INT16 x 2 INT16 y .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN MapWindow 1 8 opcode 1 unused 2 2 request length 4 WINDOW window .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN MapSubwindows 1 9 opcode 1 unused 2 2 request length 4 WINDOW window .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN UnmapWindow 1 10 opcode 1 unused 2 2 request length 4 WINDOW window .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN UnmapSubwindows 1 11 opcode 1 unused 2 2 request length 4 WINDOW window .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ConfigureWindow 1 12 opcode 1 unused 2 3+n request length 4 WINDOW window 2 BITMASK value-mask (has n bits set to 1) #x0001 x #x0002 y #x0004 width #x0008 height #x0010 border-width #x0020 sibling #x0040 stack-mode 2 unused 4n LISTofVALUE value-list .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R VALUEs 2 INT16 x 2 INT16 y 2 CARD16 width 2 CARD16 height 2 CARD16 border-width 4 WINDOW sibling 1 stack-mode 0 Above 1 Below 2 TopIf 3 BottomIf 4 Opposite .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN CirculateWindow 1 13 opcode 1 direction 0 RaiseLowest 1 LowerHighest 2 2 request length 4 WINDOW window .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GetGeometry 1 14 opcode 1 unused 2 2 request length 4 DRAWABLE drawable .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 CARD8 depth 2 CARD16 sequence number 4 0 reply length 4 WINDOW root 2 INT16 x 2 INT16 y 2 CARD16 width 2 CARD16 height 2 CARD16 border-width 10 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN QueryTree 1 15 opcode 1 unused 2 2 request length 4 WINDOW window .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 n reply length 4 WINDOW root 4 WINDOW parent 0 None 2 n number of WINDOWs in children 14 unused 4n LISTofWINDOW children .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN InternAtom 1 16 opcode 1 BOOL only-if-exists 2 2+(n+p)/4 request length 2 n length of name 2 unused n STRING8 name p unused, p=pad(n) .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 0 reply length 4 ATOM atom 0 None 20 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GetAtomName 1 17 opcode 1 unused 2 2 request length 4 ATOM atom .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 (n+p)/4 reply length 2 n length of name 22 unused n STRING8 name p unused, p=pad(n) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ChangeProperty 1 18 opcode 1 mode 0 Replace 1 Prepend 2 Append 2 6+(n+p)/4 request length 4 WINDOW window 4 ATOM property 4 ATOM type 1 CARD8 format 3 unused 4 CARD32 length of data in format units (= n for format = 8) (= n/2 for format = 16) (= n/4 for format = 32) n LISTofBYTE data (n is a multiple of 2 for format = 16) (n is a multiple of 4 for format = 32) p unused, p=pad(n) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN DeleteProperty 1 19 opcode 1 unused 2 3 request length 4 WINDOW window 4 ATOM property .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GetProperty 1 20 opcode 1 BOOL delete 2 6 request length 4 WINDOW window 4 ATOM property 4 ATOM type 0 AnyPropertyType 4 CARD32 long-offset 4 CARD32 long-length .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 CARD8 format 2 CARD16 sequence number 4 (n+p)/4 reply length 4 ATOM type 0 None 4 CARD32 bytes-after 4 CARD32 length of value in format units (= 0 for format = 0) (= n for format = 8) (= n/2 for format = 16) (= n/4 for format = 32) 12 unused n LISTofBYTE value (n is zero for format = 0) (n is a multiple of 2 for format = 16) (n is a multiple of 4 for format = 32) p unused, p=pad(n) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ListProperties 1 21 opcode 1 unused 2 2 request length 4 WINDOW window .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 n reply length 2 n number of ATOMs in atoms 22 unused 4n LISTofATOM atoms .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN SetSelectionOwner 1 22 opcode 1 unused 2 4 request length 4 WINDOW owner 0 None 4 ATOM selection 4 TIMESTAMP time 0 CurrentTime .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GetSelectionOwner 1 23 opcode 1 unused 2 2 request length 4 ATOM selection .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 0 reply length 4 WINDOW owner 0 None 20 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ConvertSelection 1 24 opcode 1 unused 2 6 request length 4 WINDOW requestor 4 ATOM selection 4 ATOM target 4 ATOM property 0 None 4 TIMESTAMP time 0 CurrentTime .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN SendEvent 1 25 opcode 1 BOOL propagate 2 11 request length 4 WINDOW destination 0 PointerWindow 1 InputFocus 4 SETofEVENT event-mask 32 event standard event format (see the Events section) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GrabPointer 1 26 opcode 1 BOOL owner-events 2 6 request length 4 WINDOW grab-window 2 SETofPOINTEREVENT event-mask 1 pointer-mode 0 Synchronous 1 Asynchronous 1 keyboard-mode 0 Synchronous 1 Asynchronous 4 WINDOW confine-to 0 None 4 CURSOR cursor 0 None 4 TIMESTAMP time 0 CurrentTime .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 status 0 Success 1 AlreadyGrabbed 2 InvalidTime 3 NotViewable 4 Frozen 2 CARD16 sequence number 4 0 reply length 24 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN UngrabPointer 1 27 opcode 1 unused 2 2 request length 4 TIMESTAMP time 0 CurrentTime .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GrabButton 1 28 opcode 1 BOOL owner-events 2 6 request length 4 WINDOW grab-window 2 SETofPOINTEREVENT event-mask 1 pointer-mode 0 Synchronous 1 Asynchronous 1 keyboard-mode 0 Synchronous 1 Asynchronous 4 WINDOW confine-to 0 None 4 CURSOR cursor 0 None 1 BUTTON button 0 AnyButton 1 unused 2 SETofKEYMASK modifiers #x8000 AnyModifier .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN UngrabButton 1 29 opcode 1 BUTTON button 0 AnyButton 2 3 request length 4 WINDOW grab-window 2 SETofKEYMASK modifiers #x8000 AnyModifier 2 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ChangeActivePointerGrab 1 30 opcode 1 unused 2 4 request length 4 CURSOR cursor 0 None 4 TIMESTAMP time 0 CurrentTime 2 SETofPOINTEREVENT event-mask 2 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GrabKeyboard 1 31 opcode 1 BOOL owner-events 2 4 request length 4 WINDOW grab-window 4 TIMESTAMP time 0 CurrentTime 1 pointer-mode 0 Synchronous 1 Asynchronous 1 keyboard-mode 0 Synchronous 1 Asynchronous 2 unused .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 status 0 Success 1 AlreadyGrabbed 2 InvalidTime 3 NotViewable 4 Frozen 2 CARD16 sequence number 4 0 reply length 24 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN UngrabKeyboard 1 32 opcode 1 unused 2 2 request length 4 TIMESTAMP time 0 CurrentTime .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .PN GrabKey 1 33 opcode 1 BOOL owner-events 2 4 request length 4 WINDOW grab-window 2 SETofKEYMASK modifiers #x8000 AnyModifier 1 KEYCODE key 0 AnyKey 1 pointer-mode 0 Synchronous 1 Asynchronous 1 keyboard-mode 0 Synchronous 1 Asynchronous 3 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN UngrabKey 1 34 opcode 1 KEYCODE key 0 AnyKey 2 3 request length 4 WINDOW grab-window 2 SETofKEYMASK modifiers #x8000 AnyModifier 2 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN AllowEvents 1 35 opcode 1 mode 0 AsyncPointer 1 SyncPointer 2 ReplayPointer 3 AsyncKeyboard 4 SyncKeyboard 5 ReplayKeyboard 6 AsyncBoth 7 SyncBoth 2 2 request length 4 TIMESTAMP time 0 CurrentTime .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GrabServer 1 36 opcode 1 unused 2 1 request length .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN UngrabServer 1 37 opcode 1 unused 2 1 request length .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN QueryPointer 1 38 opcode 1 unused 2 2 request length 4 WINDOW window .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 BOOL same-screen 2 CARD16 sequence number 4 0 reply length 4 WINDOW root 4 WINDOW child 0 None 2 INT16 root-x 2 INT16 root-y 2 INT16 win-x 2 INT16 win-y 2 SETofKEYBUTMASK mask 6 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GetMotionEvents 1 39 opcode 1 unused 2 4 request length 4 WINDOW window 4 TIMESTAMP start 0 CurrentTime 4 TIMESTAMP stop 0 CurrentTime .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 2n reply length 4 n number of TIMECOORDs in events 20 unused 8n LISTofTIMECOORD events .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R TIMECOORD 4 TIMESTAMP time 2 INT16 x 2 INT16 y .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN TranslateCoordinates 1 40 opcode 1 unused 2 4 request length 4 WINDOW src-window 4 WINDOW dst-window 2 INT16 src-x 2 INT16 src-y .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 BOOL same-screen 2 CARD16 sequence number 4 0 reply length 4 WINDOW child 0 None 2 INT16 dst-x 2 INT16 dst-y 16 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN WarpPointer 1 41 opcode 1 unused 2 6 request length 4 WINDOW src-window 0 None 4 WINDOW dst-window 0 None 2 INT16 src-x 2 INT16 src-y 2 CARD16 src-width 2 CARD16 src-height 2 INT16 dst-x 2 INT16 dst-y .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN SetInputFocus 1 42 opcode 1 revert-to 0 None 1 PointerRoot 2 Parent 2 3 request length 4 WINDOW focus 0 None 1 PointerRoot 4 TIMESTAMP time 0 CurrentTime .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GetInputFocus 1 43 opcode 1 unused 2 1 request length .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 revert-to 0 None 1 PointerRoot 2 Parent 2 CARD16 sequence number 4 0 reply length 4 WINDOW focus 0 None 1 PointerRoot 20 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN QueryKeymap 1 44 opcode 1 unused 2 1 request length .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 2 reply length 32 LISTofCARD8 keys .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN OpenFont 1 45 opcode 1 unused 2 3+(n+p)/4 request length 4 FONT fid 2 n length of name 2 unused n STRING8 name p unused, p=pad(n) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN CloseFont 1 46 opcode 1 unused 2 2 request length 4 FONT font .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN QueryFont 1 47 opcode 1 unused 2 2 request length 4 FONTABLE font .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 7+2n+3m reply length 12 CHARINFO min-bounds 4 unused 12 CHARINFO max-bounds 4 unused 2 CARD16 min-char-or-byte2 2 CARD16 max-char-or-byte2 2 CARD16 default-char 2 n number of FONTPROPs in properties 1 draw-direction 0 LeftToRight 1 RightToLeft 1 CARD8 min-byte1 1 CARD8 max-byte1 1 BOOL all-chars-exist 2 INT16 font-ascent 2 INT16 font-descent 4 m number of CHARINFOs in char-infos 8n LISTofFONTPROP properties 12m LISTofCHARINFO char-infos .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R FONTPROP 4 ATOM name 4 <32-bits> value .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R CHARINFO 2 INT16 left-side-bearing 2 INT16 right-side-bearing 2 INT16 character-width 2 INT16 ascent 2 INT16 descent 2 CARD16 attributes .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN QueryTextExtents 1 48 opcode 1 BOOL odd length, True if p = 2 2 2+(2n+p)/4 request length 4 FONTABLE font 2n STRING16 string p unused, p=pad(2n) .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 draw-direction 0 LeftToRight 1 RightToLeft 2 CARD16 sequence number 4 0 reply length 2 INT16 font-ascent 2 INT16 font-descent 2 INT16 overall-ascent 2 INT16 overall-descent 4 INT32 overall-width 4 INT32 overall-left 4 INT32 overall-right 4 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ListFonts 1 49 opcode 1 unused 2 2+(n+p)/4 request length 2 CARD16 max-names 2 n length of pattern n STRING8 pattern p unused, p=pad(n) .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 (n+p)/4 reply length 2 CARD16 number of STRs in names 22 unused n LISTofSTR names p unused, p=pad(n) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ListFontsWithInfo 1 50 opcode 1 unused 2 2+(n+p)/4 request length 2 CARD16 max-names 2 n length of pattern n STRING8 pattern p unused, p=pad(n) .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> (except for last in series) 1 1 Reply 1 n length of name in bytes 2 CARD16 sequence number 4 7+2m+(n+p)/4 reply length 12 CHARINFO min-bounds 4 unused 12 CHARINFO max-bounds 4 unused 2 CARD16 min-char-or-byte2 2 CARD16 max-char-or-byte2 2 CARD16 default-char 2 m number of FONTPROPs in properties 1 draw-direction 0 LeftToRight 1 RightToLeft 1 CARD8 min-byte1 1 CARD8 max-byte1 1 BOOL all-chars-exist 2 INT16 font-ascent 2 INT16 font-descent 4 CARD32 replies-hint 8m LISTofFONTPROP properties n STRING8 name p unused, p=pad(n) .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R FONTPROP encodings are the same as for QueryFont CHARINFO encodings are the same as for QueryFont .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> (last in series) 1 1 Reply 1 0 last-reply indicator 2 CARD16 sequence number 4 7 reply length 52 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN SetFontPath 1 51 opcode 1 unused 2 2+(n+p)/4 request length 2 CARD16 number of STRs in path 2 unused n LISTofSTR path p unused, p=pad(n) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GetFontPath 1 52 opcode 1 unused 2 1 request list .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 (n+p)/4 reply length 2 CARD16 number of STRs in path 22 unused n LISTofSTR path p unused, p=pad(n) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN CreatePixmap 1 53 opcode 1 CARD8 depth 2 4 request length 4 PIXMAP pid 4 DRAWABLE drawable 2 CARD16 width 2 CARD16 height .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN FreePixmap 1 54 opcode 1 unused 2 2 request length 4 PIXMAP pixmap .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN CreateGC 1 55 opcode 1 unused 2 4+n request length 4 GCONTEXT cid 4 DRAWABLE drawable 4 BITMASK value-mask (has n bits set to 1) #x00000001 function #x00000002 plane-mask #x00000004 foreground #x00000008 background #x00000010 line-width #x00000020 line-style #x00000040 cap-style #x00000080 join-style #x00000100 fill-style #x00000200 fill-rule #x00000400 tile #x00000800 stipple #x00001000 tile-stipple-x-origin #x00002000 tile-stipple-y-origin #x00004000 font #x00008000 subwindow-mode #x00010000 graphics-exposures #x00020000 clip-x-origin #x00040000 clip-y-origin #x00080000 clip-mask #x00100000 dash-offset #x00200000 dashes #x00400000 arc-mode 4n LISTofVALUE value-list .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R VALUEs 1 function 0 Clear 1 And 2 AndReverse 3 Copy 4 AndInverted 5 NoOp 6 Xor 7 Or 8 Nor 9 Equiv 10 Invert 11 OrReverse 12 CopyInverted 13 OrInverted 14 Nand 15 Set 4 CARD32 plane-mask 4 CARD32 foreground 4 CARD32 background 2 CARD16 line-width 1 line-style 0 Solid 1 OnOffDash 2 DoubleDash 1 cap-style 0 NotLast 1 Butt 2 Round 3 Projecting 1 join-style 0 Miter 1 Round 2 Bevel 1 fill-style 0 Solid 1 Tiled 2 Stippled 3 OpaqueStippled 1 fill-rule 0 EvenOdd 1 Winding 4 PIXMAP tile 4 PIXMAP stipple 2 INT16 tile-stipple-x-origin 2 INT16 tile-stipple-y-origin 4 FONT font 1 subwindow-mode 0 ClipByChildren 1 IncludeInferiors 1 BOOL graphics-exposures 2 INT16 clip-x-origin 2 INT16 clip-y-origin 4 PIXMAP clip-mask 0 None 2 CARD16 dash-offset 1 CARD8 dashes 1 arc-mode 0 Chord 1 PieSlice .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ChangeGC 1 56 opcode 1 unused 2 3+n request length 4 GCONTEXT gc 4 BITMASK value-mask (has n bits set to 1) encodings are the same as for CreateGC 4n LISTofVALUE value-list encodings are the same as for CreateGC .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN CopyGC 1 57 opcode 1 unused 2 4 request length 4 GCONTEXT src-gc 4 GCONTEXT dst-gc 4 BITMASK value-mask encodings are the same as for CreateGC .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN SetDashes 1 58 opcode 1 unused 2 3+(n+p)/4 request length 4 GCONTEXT gc 2 CARD16 dash-offset 2 n length of dashes n LISTofCARD8 dashes p unused, p=pad(n) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN SetClipRectangles 1 59 opcode 1 ordering 0 UnSorted 1 YSorted 2 YXSorted 3 YXBanded 2 3+2n request length 4 GCONTEXT gc 2 INT16 clip-x-origin 2 INT16 clip-y-origin 8n LISTofRECTANGLE rectangles .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN FreeGC 1 60 opcode 1 unused 2 2 request length 4 GCONTEXT gc .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ClearArea 1 61 opcode 1 BOOL exposures 2 4 request length 4 WINDOW window 2 INT16 x 2 INT16 y 2 CARD16 width 2 CARD16 height .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN CopyArea 1 62 opcode 1 unused 2 7 request length 4 DRAWABLE src-drawable 4 DRAWABLE dst-drawable 4 GCONTEXT gc 2 INT16 src-x 2 INT16 src-y 2 INT16 dst-x 2 INT16 dst-y 2 CARD16 width 2 CARD16 height .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN CopyPlane 1 63 opcode 1 unused 2 8 request length 4 DRAWABLE src-drawable 4 DRAWABLE dst-drawable 4 GCONTEXT gc 2 INT16 src-x 2 INT16 src-y 2 INT16 dst-x 2 INT16 dst-y 2 CARD16 width 2 CARD16 height 4 CARD32 bit-plane .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN PolyPoint 1 64 opcode 1 coordinate-mode 0 Origin 1 Previous 2 3+n request length 4 DRAWABLE drawable 4 GCONTEXT gc 4n LISTofPOINT points .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN PolyLine 1 65 opcode 1 coordinate-mode 0 Origin 1 Previous 2 3+n request length 4 DRAWABLE drawable 4 GCONTEXT gc 4n LISTofPOINT points .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN PolySegment 1 66 opcode 1 unused 2 3+2n request length 4 DRAWABLE drawable 4 GCONTEXT gc 8n LISTofSEGMENT segments .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R SEGMENT 2 INT16 x1 2 INT16 y1 2 INT16 x2 2 INT16 y2 .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN PolyRectangle 1 67 opcode 1 unused 2 3+2n request length 4 DRAWABLE drawable 4 GCONTEXT gc 8n LISTofRECTANGLE rectangles .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN PolyArc 1 68 opcode 1 unused 2 3+3n request length 4 DRAWABLE drawable 4 GCONTEXT gc 12n LISTofARC arcs .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN FillPoly 1 69 opcode 1 unused 2 4+n request length 4 DRAWABLE drawable 4 GCONTEXT gc 1 shape 0 Complex 1 Nonconvex 2 Convex 1 coordinate-mode 0 Origin 1 Previous 2 unused 4n LISTofPOINT points .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN PolyFillRectangle 1 70 opcode 1 unused 2 3+2n request length 4 DRAWABLE drawable 4 GCONTEXT gc 8n LISTofRECTANGLE rectangles .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN PolyFillArc 1 71 opcode 1 unused 2 3+3n request length 4 DRAWABLE drawable 4 GCONTEXT gc 12n LISTofARC arcs .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN PutImage 1 72 opcode 1 format 0 Bitmap 1 XYPixmap 2 ZPixmap 2 6+(n+p)/4 request length 4 DRAWABLE drawable 4 GCONTEXT gc 2 CARD16 width 2 CARD16 height 2 INT16 dst-x 2 INT16 dst-y 1 CARD8 left-pad 1 CARD8 depth 2 unused n LISTofBYTE data p unused, p=pad(n) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GetImage 1 73 opcode 1 format 1 XYPixmap 2 ZPixmap 2 5 request length 4 DRAWABLE drawable 2 INT16 x 2 INT16 y 2 CARD16 width 2 CARD16 height 4 CARD32 plane-mask .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 CARD8 depth 2 CARD16 sequence number 4 (n+p)/4 reply length 4 VISUALID visual 0 None 20 unused n LISTofBYTE data p unused, p=pad(n) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN PolyText8 1 74 opcode 1 unused 2 4+(n+p)/4 request length 4 DRAWABLE drawable 4 GCONTEXT gc 2 INT16 x 2 INT16 y n LISTofTEXTITEM8 items p unused, p=pad(n) (p is always 0 or 1) .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R TEXTITEM8 1 m length of string (cannot be 255) 1 INT8 delta m STRING8 string or 1 255 font-shift indicator 1 font byte 3 (most-significant) 1 font byte 2 1 font byte 1 1 font byte 0 (least-significant) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN PolyText16 1 75 opcode 1 unused 2 4+(n+p)/4 request length 4 DRAWABLE drawable 4 GCONTEXT gc 2 INT16 x 2 INT16 y n LISTofTEXTITEM16 items p unused, p=pad(n) (p must be 0 or 1) .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R TEXTITEM16 1 m number of CHAR2Bs in string (cannot be 255) 1 INT8 delta 2m STRING16 string or 1 255 font-shift indicator 1 font byte 3 (most-significant) 1 font byte 2 1 font byte 1 1 font byte 0 (least-significant) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ImageText8 1 76 opcode 1 n length of string 2 4+(n+p)/4 request length 4 DRAWABLE drawable 4 GCONTEXT gc 2 INT16 x 2 INT16 y n STRING8 string p unused, p=pad(n) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ImageText16 1 77 opcode 1 n number of CHAR2Bs in string 2 4+(2n+p)/4 request length 4 DRAWABLE drawable 4 GCONTEXT gc 2 INT16 x 2 INT16 y 2n STRING16 string p unused, p=pad(2n) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN CreateColormap 1 78 opcode 1 alloc 0 None 1 All 2 4 request length 4 COLORMAP mid 4 WINDOW window 4 VISUALID visual .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN FreeColormap 1 79 opcode 1 unused 2 2 request length 4 COLORMAP cmap .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN CopyColormapAndFree 1 80 opcode 1 unused 2 3 request length 4 COLORMAP mid 4 COLORMAP src-cmap .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN InstallColormap 1 81 opcode 1 unused 2 2 request length 4 COLORMAP cmap .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN UninstallColormap 1 82 opcode 1 unused 2 2 request length 4 COLORMAP cmap .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ListInstalledColormaps 1 83 opcode 1 unused 2 2 request length 4 WINDOW window .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 n reply length 2 n number of COLORMAPs in cmaps 22 unused 4n LISTofCOLORMAP cmaps .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN AllocColor 1 84 opcode 1 unused 2 4 request length 4 COLORMAP cmap 2 CARD16 red 2 CARD16 green 2 CARD16 blue 2 unused .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 0 reply length 2 CARD16 red 2 CARD16 green 2 CARD16 blue 2 unused 4 CARD32 pixel 12 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN AllocNamedColor 1 85 opcode 1 unused 2 3+(n+p)/4 request length 4 COLORMAP cmap 2 n length of name 2 unused n STRING8 name p unused, p=pad(n) .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 0 reply length 4 CARD32 pixel 2 CARD16 exact-red 2 CARD16 exact-green 2 CARD16 exact-blue 2 CARD16 visual-red 2 CARD16 visual-green 2 CARD16 visual-blue 8 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN AllocColorCells 1 86 opcode 1 BOOL contiguous 2 3 request length 4 COLORMAP cmap 2 CARD16 colors 2 CARD16 planes .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 n+m reply length 2 n number of CARD32s in pixels 2 m number of CARD32s in masks 20 unused 4n LISTofCARD32 pixels 4m LISTofCARD32 masks .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN AllocColorPlanes 1 87 opcode 1 BOOL contiguous 2 4 request length 4 COLORMAP cmap 2 CARD16 colors 2 CARD16 reds 2 CARD16 greens 2 CARD16 blues .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 n reply length 2 n number of CARD32s in pixels 2 unused 4 CARD32 red-mask 4 CARD32 green-mask 4 CARD32 blue-mask 8 unused 4n LISTofCARD32 pixels .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN FreeColors 1 88 opcode 1 unused 2 3+n request length 4 COLORMAP cmap 4 CARD32 plane-mask 4n LISTofCARD32 pixels .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN StoreColors 1 89 opcode 1 unused 2 2+3n request length 4 COLORMAP cmap 12n LISTofCOLORITEM items .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R COLORITEM 4 CARD32 pixel 2 CARD16 red 2 CARD16 green 2 CARD16 blue 1 do-red, do-green, do-blue #x01 do-red (1 is True, 0 is False) #x02 do-green (1 is True, 0 is False) #x04 do-blue (1 is True, 0 is False) #xF8 unused 1 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN StoreNamedColor 1 90 opcode 1 do-red, do-green, do-blue #x01 do-red (1 is True, 0 is False) #x02 do-green (1 is True, 0 is False) #x04 do-blue (1 is True, 0 is False) #xF8 unused 2 4+(n+p)/4 request length 4 COLORMAP cmap 4 CARD32 pixel 2 n length of name 2 unused n STRING8 name p unused, p=pad(n) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN QueryColors 1 91 opcode 1 unused 2 2+n request length 4 COLORMAP cmap 4n LISTofCARD32 pixels .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 2n reply length 2 n number of RGBs in colors 22 unused 8n LISTofRGB colors .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R RGB 2 CARD16 red 2 CARD16 green 2 CARD16 blue 2 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN LookupColor 1 92 opcode 1 unused 2 3+(n+p)/4 request length 4 COLORMAP cmap 2 n length of name 2 unused n STRING8 name p unused, p=pad(n) .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 0 reply length 2 CARD16 exact-red 2 CARD16 exact-green 2 CARD16 exact-blue 2 CARD16 visual-red 2 CARD16 visual-green 2 CARD16 visual-blue 12 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN CreateCursor 1 93 opcode 1 unused 2 8 request length 4 CURSOR cid 4 PIXMAP source 4 PIXMAP mask 0 None 2 CARD16 fore-red 2 CARD16 fore-green 2 CARD16 fore-blue 2 CARD16 back-red 2 CARD16 back-green 2 CARD16 back-blue 2 CARD16 x 2 CARD16 y .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN CreateGlyphCursor 1 94 opcode 1 unused 2 8 request length 4 CURSOR cid 4 FONT source-font 4 FONT mask-font 0 None 2 CARD16 source-char 2 CARD16 mask-char 2 CARD16 fore-red 2 CARD16 fore-green 2 CARD16 fore-blue 2 CARD16 back-red 2 CARD16 back-green 2 CARD16 back-blue .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN FreeCursor 1 95 opcode 1 unused 2 2 request length 4 CURSOR cursor .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN RecolorCursor 1 96 opcode 1 unused 2 5 request length 4 CURSOR cursor 2 CARD16 fore-red 2 CARD16 fore-green 2 CARD16 fore-blue 2 CARD16 back-red 2 CARD16 back-green 2 CARD16 back-blue .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN QueryBestSize 1 97 opcode 1 class 0 Cursor 1 Tile 2 Stipple 2 3 request length 4 DRAWABLE drawable 2 CARD16 width 2 CARD16 height .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 0 reply length 2 CARD16 width 2 CARD16 height 20 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN QueryExtension 1 98 opcode 1 unused 2 2+(n+p)/4 request length 2 n length of name 2 unused n STRING8 name p unused, p=pad(n) .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 0 reply length 1 BOOL present 1 CARD8 major-opcode 1 CARD8 first-event 1 CARD8 first-error 20 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ListExtensions 1 99 opcode 1 unused 2 1 request length .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 CARD8 number of STRs in names 2 CARD16 sequence number 4 (n+p)/4 reply length 24 unused n LISTofSTR names p unused, p=pad(n) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ChangeKeyboardMapping 1 100 opcode 1 n keycode-count 2 2+nm request length 1 KEYCODE first-keycode 1 m keysyms-per-keycode 2 unused 4nm LISTofKEYSYM keysyms .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GetKeyboardMapping 1 101 opcode 1 unused 2 2 request length 1 KEYCODE first-keycode 1 m count 2 unused .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 n keysyms-per-keycode 2 CARD16 sequence number 4 nm reply length (m = count field from the request) 24 unused 4nm LISTofKEYSYM keysyms .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ChangeKeyboardControl 1 102 opcode 1 unused 2 2+n request length 4 BITMASK value-mask (has n bits set to 1) #x0001 key-click-percent #x0002 bell-percent #x0004 bell-pitch #x0008 bell-duration #x0010 led #x0020 led-mode #x0040 key #x0080 auto-repeat-mode 4n LISTofVALUE value-list .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R VALUEs 1 INT8 key-click-percent 1 INT8 bell-percent 2 INT16 bell-pitch 2 INT16 bell-duration 1 CARD8 led 1 led-mode 0 Off 1 On 1 KEYCODE key 1 auto-repeat-mode 0 Off 1 On 2 Default .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GetKeyboardControl 1 103 opcode 1 unused 2 1 request length .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 global-auto-repeat 0 Off 1 On 2 CARD16 sequence number 4 5 reply length 4 CARD32 led-mask 1 CARD8 key-click-percent 1 CARD8 bell-percent 2 CARD16 bell-pitch 2 CARD16 bell-duration 2 unused 32 LISTofCARD8 auto-repeats .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN Bell 1 104 opcode 1 INT8 percent 2 1 request length .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ChangePointerControl 1 105 opcode 1 unused 2 3 request length 2 INT16 acceleration-numerator 2 INT16 acceleration-denominator 2 INT16 threshold 1 BOOL do-acceleration 1 BOOL do-threshold .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GetPointerControl 1 106 opcode 1 unused 2 1 request length .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 0 reply length 2 CARD16 acceleration-numerator 2 CARD16 acceleration-denominator 2 CARD16 threshold 18 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN SetScreenSaver 1 107 opcode 1 unused 2 3 request length 2 INT16 timeout 2 INT16 interval 1 prefer-blanking 0 No 1 Yes 2 Default 1 allow-exposures 0 No 1 Yes 2 Default 2 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GetScreenSaver 1 108 opcode 1 unused 2 1 request length .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 unused 2 CARD16 sequence number 4 0 reply length 2 CARD16 timeout 2 CARD16 interval 1 prefer-blanking 0 No 1 Yes 1 allow-exposures 0 No 1 Yes 18 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ChangeHosts 1 109 opcode 1 mode 0 Insert 1 Delete 2 2+(n+p)/4 request length 1 family 0 Internet 1 DECnet 2 Chaos 1 unused 2 n length of address n LISTofCARD8 address p unused, p=pad(n) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ListHosts 1 110 opcode 1 unused 2 1 request length .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 mode 0 Disabled 1 Enabled 2 CARD16 sequence number 4 n/4 reply length 2 CARD16 number of HOSTs in hosts 22 unused n LISTofHOST hosts (n always a multiple of 4) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN SetAccessControl 1 111 opcode 1 mode 0 Disable 1 Enable 2 1 request length .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN SetCloseDownMode 1 112 opcode 1 mode 0 Destroy 1 RetainPermanent 2 RetainTemporary 2 1 request length .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN KillClient 1 113 opcode 1 unused 2 2 request length 4 CARD32 resource 0 AllTemporary .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN RotateProperties 1 114 opcode 1 unused 2 3+n request length 4 WINDOW window 2 n number of properties 2 INT16 delta 4n LISTofATOM properties .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ForceScreenSaver 1 115 opcode 1 mode 0 Reset 1 Activate 2 1 request length .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN SetPointerMapping 1 116 opcode 1 n length of map 2 1+(n+p)/4 request length n LISTofCARD8 map p unused, p=pad(n) .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 status 0 Success 1 Busy 2 CARD16 sequence number 4 0 reply length 24 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GetPointerMapping 1 117 opcode 1 unused 2 1 request length .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 n length of map 2 CARD16 sequence number 4 (n+p)/4 reply length 24 unused n LISTofCARD8 map p unused, p=pad(n) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN SetModifierMapping 1 118 opcode 1 n keycodes-per-modifier 2 1+2n request length 8n LISTofKEYCODE keycodes .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 status 0 Success 1 Busy 2 Failed 2 CARD16 sequence number 4 0 reply length 24 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GetModifierMapping 1 119 opcode 1 unused 2 1 request length .De .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R \(-> 1 1 Reply 1 n keycodes-per-modifier 2 CARD16 sequence number 4 2n reply length 24 unused 8n LISTofKEYCODE keycodes .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN NoOperation 1 127 opcode 1 unused 2 1+n request length 4n unused .De .ps 11 .nr PS 11 .SH Events .LP .ps 9 .nr PS 9 .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN KeyPress 1 2 code 1 KEYCODE detail 2 CARD16 sequence number 4 TIMESTAMP time 4 WINDOW root 4 WINDOW event 4 WINDOW child 0 None 2 INT16 root-x 2 INT16 root-y 2 INT16 event-x 2 INT16 event-y 2 SETofKEYBUTMASK state 1 BOOL same-screen 1 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN KeyRelease 1 3 code 1 KEYCODE detail 2 CARD16 sequence number 4 TIMESTAMP time 4 WINDOW root 4 WINDOW event 4 WINDOW child 0 None 2 INT16 root-x 2 INT16 root-y 2 INT16 event-x 2 INT16 event-y 2 SETofKEYBUTMASK state 1 BOOL same-screen 1 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ButtonPress 1 4 code 1 BUTTON detail 2 CARD16 sequence number 4 TIMESTAMP time 4 WINDOW root 4 WINDOW event 4 WINDOW child 0 None 2 INT16 root-x 2 INT16 root-y 2 INT16 event-x 2 INT16 event-y 2 SETofKEYBUTMASK state 1 BOOL same-screen 1 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ButtonRelease 1 5 code 1 BUTTON detail 2 CARD16 sequence number 4 TIMESTAMP time 4 WINDOW root 4 WINDOW event 4 WINDOW child 0 None 2 INT16 root-x 2 INT16 root-y 2 INT16 event-x 2 INT16 event-y 2 SETofKEYBUTMASK state 1 BOOL same-screen 1 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN MotionNotify 1 6 code 1 detail 0 Normal 1 Hint 2 CARD16 sequence number 4 TIMESTAMP time 4 WINDOW root 4 WINDOW event 4 WINDOW child 0 None 2 INT16 root-x 2 INT16 root-y 2 INT16 event-x 2 INT16 event-y 2 SETofKEYBUTMASK state 1 BOOL same-screen 1 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN EnterNotify 1 7 code 1 detail 0 Ancestor 1 Virtual 2 Inferior 3 Nonlinear 4 NonlinearVirtual 2 CARD16 sequence number 4 TIMESTAMP time 4 WINDOW root 4 WINDOW event 4 WINDOW child 0 None 2 INT16 root-x 2 INT16 root-y 2 INT16 event-x 2 INT16 event-y 2 SETofKEYBUTMASK state 1 mode 0 Normal 1 Grab 2 Ungrab 1 same-screen, focus #x01 focus (1 is True, 0 is False) #x02 same-screen (1 is True, 0 is False) #xFC unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN LeaveNotify 1 8 code 1 detail 0 Ancestor 1 Virtual 2 Inferior 3 Nonlinear 4 NonlinearVirtual 2 CARD16 sequence number 4 TIMESTAMP time 4 WINDOW root 4 WINDOW event 4 WINDOW child 0 None 2 INT16 root-x 2 INT16 root-y 2 INT16 event-x 2 INT16 event-y 2 SETofKEYBUTMASK state 1 mode 0 Normal 1 Grab 2 Ungrab 1 same-screen, focus #x01 focus (1 is True, 0 is False) #x02 same-screen (1 is True, 0 is False) #xFC unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN FocusIn 1 9 code 1 detail 0 Ancestor 1 Virtual 2 Inferior 3 Nonlinear 4 NonlinearVirtual 5 Pointer 6 PointerRoot 7 None 2 CARD16 sequence number 4 WINDOW event 1 mode 0 Normal 1 Grab 2 Ungrab 3 WhileGrabbed 23 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN FocusOut 1 10 code 1 detail 0 Ancestor 1 Virtual 2 Inferior 3 Nonlinear 4 NonlinearVirtual 5 Pointer 6 PointerRoot 7 None 2 CARD16 sequence number 4 WINDOW event 1 mode 0 Normal 1 Grab 2 Ungrab 3 WhileGrabbed 23 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN KeymapNotify 1 11 code 31 LISTofCARD8 keys (byte for keycodes 0\-7 is omitted) .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN Expose 1 12 code 1 unused 2 CARD16 sequence number 4 WINDOW window 2 CARD16 x 2 CARD16 y 2 CARD16 width 2 CARD16 height 2 CARD16 count 14 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GraphicsExposure 1 13 code 1 unused 2 CARD16 sequence number 4 DRAWABLE drawable 2 CARD16 x 2 CARD16 y 2 CARD16 width 2 CARD16 height 2 CARD16 minor-opcode 2 CARD16 count 1 CARD8 major-opcode 11 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN NoExposure 1 14 code 1 unused 2 CARD16 sequence number 4 DRAWABLE drawable 2 CARD16 minor-opcode 1 CARD8 major-opcode 21 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN VisibilityNotify 1 15 code 1 unused 2 CARD16 sequence number 4 WINDOW window 1 state 0 Unobscured 1 PartiallyObscured 2 FullyObscured 23 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN CreateNotify 1 16 code 1 unused 2 CARD16 sequence number 4 WINDOW parent 4 WINDOW window 2 INT16 x 2 INT16 y 2 CARD16 width 2 CARD16 height 2 CARD16 border-width 1 BOOL override-redirect 9 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN DestroyNotify 1 17 code 1 unused 2 CARD16 sequence number 4 WINDOW event 4 WINDOW window 20 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN UnmapNotify 1 18 code 1 unused 2 CARD16 sequence number 4 WINDOW event 4 WINDOW window 1 BOOL from-configure 19 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN MapNotify 1 19 code 1 unused 2 CARD16 sequence number 4 WINDOW event 4 WINDOW window 1 BOOL override-redirect 19 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN MapRequest 1 20 code 1 unused 2 CARD16 sequence number 4 WINDOW parent 4 WINDOW window 20 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ReparentNotify 1 21 code 1 unused 2 CARD16 sequence number 4 WINDOW event 4 WINDOW window 4 WINDOW parent 2 INT16 x 2 INT16 y 1 BOOL override-redirect 11 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ConfigureNotify 1 22 code 1 unused 2 CARD16 sequence number 4 WINDOW event 4 WINDOW window 4 WINDOW above-sibling 0 None 2 INT16 x 2 INT16 y 2 CARD16 width 2 CARD16 height 2 CARD16 border-width 1 BOOL override-redirect 5 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ConfigureRequest 1 23 code 1 stack-mode 0 Above 1 Below 2 TopIf 3 BottomIf 4 Opposite 2 CARD16 sequence number 4 WINDOW parent 4 WINDOW window 4 WINDOW sibling 0 None 2 INT16 x 2 INT16 y 2 CARD16 width 2 CARD16 height 2 CARD16 border-width 2 BITMASK value-mask #x0001 x #x0002 y #x0004 width #x0008 height #x0010 border-width #x0020 sibling #x0040 stack-mode 4 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN GravityNotify 1 24 code 1 unused 2 CARD16 sequence number 4 WINDOW event 4 WINDOW window 2 INT16 x 2 INT16 y 16 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ResizeRequest 1 25 code 1 unused 2 CARD16 sequence number 4 WINDOW window 2 CARD16 width 2 CARD16 height 20 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN CirculateNotify 1 26 code 1 unused 2 CARD16 sequence number 4 WINDOW event 4 WINDOW window 4 WINDOW unused 1 place 0 Top 1 Bottom 15 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN CirculateRequest 1 27 code 1 unused 2 CARD16 sequence number 4 WINDOW parent 4 WINDOW window 4 unused 1 place 0 Top 1 Bottom 15 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN PropertyNotify 1 28 code 1 unused 2 CARD16 sequence number 4 WINDOW window 4 ATOM atom 4 TIMESTAMP time 1 state 0 NewValue 1 Deleted 15 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN SelectionClear 1 29 code 1 unused 2 CARD16 sequence number 4 TIMESTAMP time 4 WINDOW owner 4 ATOM selection 16 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN SelectionRequest 1 30 code 1 unused 2 CARD16 sequence number 4 TIMESTAMP time 0 CurrentTime 4 WINDOW owner 4 WINDOW requestor 4 ATOM selection 4 ATOM target 4 ATOM property 0 None 4 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN SelectionNotify 1 31 code 1 unused 2 CARD16 sequence number 4 TIMESTAMP time 0 CurrentTime 4 WINDOW requestor 4 ATOM selection 4 ATOM target 4 ATOM property 0 None 8 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ColormapNotify 1 32 code 1 unused 2 CARD16 sequence number 4 WINDOW window 4 COLORMAP colormap 0 None 1 BOOL new 1 state 0 Uninstalled 1 Installed 18 unused .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN ClientMessage 1 33 code 1 CARD8 format 2 CARD16 sequence number 4 WINDOW window 4 ATOM type 20 data .De .LP .Ds 0 .TA .2i .5i 1.5i 2.5i .ta .2i .5i 1.5i 2.5i .R .PN MappingNotify 1 34 code 1 unused 2 CARD16 sequence number 1 request 0 Modifier 1 Keyboard 2 Pointer 1 KEYCODE first-keycode 1 CARD8 count 25 unused .De .ps 11 .nr PS 11 .bp