home *** CD-ROM | disk | FTP | other *** search
Text File | 2001-06-27 | 390.0 KB | 15,511 lines |
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- X Window System Protocol
-
- X Consortium Standard
-
- X Version 11, Release 6.4
-
-
-
-
-
-
- Robert W. Scheifler
- X Consortium, Inc.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- X Window System is a trademark of X Consortium, Inc.
-
- Copyright (C) 1986, 1987, 1988, 1994 X Consortium
-
- Permission is hereby granted, free of charge, to any person
- obtaining a copy of this software and associated documenta-
- tion files (the ``Software''), to deal in the Software with-
- out restriction, including without limitation the rights to
- use, copy, modify, merge, publish, distribute, sublicense,
- and/or sell copies of the Software, and to permit persons to
- whom the Software is furnished to do so, subject to the fol-
- lowing conditions:
-
- The above copyright notice and this permission notice shall
- be included in all copies or substantial portions of the
- Software.
-
- THE SOFTWARE IS PROVIDED ``AS IS'', WITHOUT WARRANTY OF ANY
- KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
- WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PUR-
- POSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE X CONSOR-
- TIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
- OR OTHER DEALINGS IN THE SOFTWARE.
-
- Except as contained in this notice, the name of the X Con-
- sortium shall not be used in advertising or otherwise to
- promote the sale, use or other dealings in this Software
- without prior written authorization from the X Consortium.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Acknowledgments
-
-
-
- The primary contributers to the X11 protocol are:
-
-
- Dave Carver (Digital HPW)
- Branko Gerovac (Digital HPW)
- Jim Gettys (MIT/Project Athena, Digital)
- Phil Karlton (Digital WSL)
- Scott McGregor (Digital SSG)
- Ram Rao (Digital UEG)
- David Rosenthal (Sun)
- Dave Winchell (Digital UEG)
-
-
- The implementors of initial server who provided useful input
- are:
-
-
- Susan Angebranndt (Digital)
- Raymond Drewry (Digital)
- Todd Newman (Digital)
-
-
- The invited reviewers who provided useful input are:
-
-
- Andrew Cherenson (Berkeley)
- Burns Fisher (Digital)
- Dan Garfinkel (HP)
- Leo Hourvitz (Next)
- Brock Krizan (HP)
- David Laidlaw (Stellar)
- Dave Mellinger (Interleaf)
- Ron Newman (MIT)
- John Ousterhout (Berkeley)
- Andrew Palay (ITC CMU)
- Ralph Swick (MIT)
- Craig Taylor (Sun)
- Jeffery Vroom (Stellar)
-
-
- Thanks go to Al Mento of Digital's UEG Documentation Group
- for formatting this document.
-
- This document does not attempt to provide the rationale or
- pragmatics required to fully understand the protocol or to
- place it in perspective within a complete system.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- The protocol contains many management mechanisms that are
- not intended for normal applications. Not all mechanisms
- are needed to build a particular user interface. It is
- important to keep in mind that the protocol is intended to
- provide mechanism, not policy.
-
-
- Robert W. Scheifler
- X Consortium, Inc.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1. Protocol Formats
-
- Request Format
-
- Every request contains an 8-bit major opcode and a 16-bit
- length field expressed in units of four bytes. Every
- request consists of four bytes of a header (containing the
- major opcode, the length field, and a data byte) followed by
- zero or more additional bytes of data. The length field
- defines the total length of the request, including the
- header. The length field in a request must equal the mini-
- mum length required to contain the request. If the speci-
- fied length is smaller or larger than the required length,
- an error is generated. Unused bytes in a request are not
- required to be zero. Major opcodes 128 through 255 are
- reserved for extensions. Extensions are intended to contain
- multiple requests, so extension requests typically have an
- additional minor opcode encoded in the second data byte in
- the request header. However, the placement and interpreta-
- tion of this minor opcode and of all other fields in exten-
- sion requests are not defined by the core protocol. Every
- request on a given connection is implicitly assigned a
- sequence number, starting with one, that is used in replies,
- errors, and events.
-
- Reply Format
-
- Every reply contains a 32-bit length field expressed in
- units of four bytes. Every reply consists of 32 bytes fol-
- lowed by zero or more additional bytes of data, as specified
- in the length field. Unused bytes within a reply are not
- guaranteed to be zero. Every reply also contains the least
- significant 16 bits of the sequence number of the corre-
- sponding request.
-
- Error Format
-
- Error reports are 32 bytes long. Every error includes an
- 8-bit error code. Error codes 128 through 255 are reserved
- for extensions. Every error also includes the major and
- minor opcodes of the failed request and the least signifi-
- cant 16 bits of the sequence number of the request. For the
- following errors (see section 4), the failing resource ID is
- also returned: Colormap, Cursor, Drawable, Font, GContext,
- IDChoice, Pixmap, and Window. For Atom errors, the failing
- atom is returned. For Value errors, the failing value is
- returned. Other core errors return no additional data.
- Unused bytes within an error are not guaranteed to be zero.
-
- Event Format
-
- Events are 32 bytes long. Unused bytes within an event are
- not guaranteed to be zero. Every event contains an 8-bit
- type code. The most significant bit in this code is set if
-
-
-
- 1
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- the event was generated from a SendEvent request. Event
- codes 64 through 127 are reserved for extensions, although
- the core protocol does not define a mechanism for selecting
- interest in such events. Every core event (with the excep-
- tion of KeymapNotify) also contains the least significant 16
- bits of the sequence number of the last request issued by
- the client that was (or is currently being) processed by the
- server.
-
- 2. Syntactic Conventions
-
- The rest of this document uses the following syntactic con-
- ventions.
-
- o The syntax {...} encloses a set of alternatives.
-
- o The syntax [...] encloses a set of structure compo-
- nents.
-
- o In general, TYPEs are in uppercase and AlternativeVal-
- ues are capitalized.
-
- o Requests in section 9 are described in the following
- format:
-
-
- RequestName
- arg1: type1
- ...
- argN: typeN
- ->
- result1: type1
- ...
- resultM: typeM
-
- Errors: kind1, ..., kindK
-
- Description.
-
-
- If no -> is present in the description, then the
- request has no reply (it is asynchronous), although
- errors may still be reported. If ->+ is used, then one
- or more replies can be generated for a single request.
-
- o Events in section 11 are described in the following
- format:
-
-
- EventName
- value1: type1
- ...
- valueN: typeN
-
-
-
-
- 2
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Description.
-
-
- 3. Common Types
-
-
- -------------------------------------------------------------------
- Name Value
- -------------------------------------------------------------------
- LISTofFOO A type name of the form LISTofFOO means a counted
- list of elements of type FOO. The size of the
- length field may vary (it is not necessarily the
- same size as a FOO), and in some cases, it may be
- implicit. It is fully specified in Appendix B.
- Except where explicitly noted, zero-length lists
- are legal.
- BITMASK The types BITMASK and LISTofVALUE are somewhat spe-
- LISTofVALUE cial. Various requests contain arguments of the
- form:
- value-mask: BITMASK
- value-list: LISTofVALUE
- These are used to allow the client to specify a
- subset of a heterogeneous collection of optional
- arguments. The value-mask specifies which argu-
- ments are to be provided; each such argument is
- assigned a unique bit position. The representation
- of the BITMASK will typically contain more bits
- than there are defined arguments. The unused bits
- in the value-mask must be zero (or the server gen-
- erates a Value error). The value-list contains one
- value for each bit set to 1 in the mask, from least
- significant to most significant bit in the mask.
- Each value is represented with four bytes, but the
- actual value occupies only the least significant
- bytes as required. The values of the unused bytes
- do not matter.
- OR A type of the form ``T1 or ... or Tn'' means the
- union of the indicated types. A single-element
- type is given as the element without enclosing
- braces.
- WINDOW 32-bit value (top three bits guaranteed to be zero)
- PIXMAP 32-bit value (top three bits guaranteed to be zero)
- CURSOR 32-bit value (top three bits guaranteed to be zero)
- FONT 32-bit value (top three bits guaranteed to be zero)
- GCONTEXT 32-bit value (top three bits guaranteed to be zero)
- COLORMAP 32-bit value (top three bits guaranteed to be zero)
- DRAWABLE WINDOW or PIXMAP
- FONTABLE FONT or GCONTEXT
- ATOM 32-bit value (top three bits guaranteed to be zero)
- VISUALID 32-bit value (top three bits guaranteed to be zero)
- VALUE 32-bit quantity (used only in LISTofVALUE)
- BYTE 8-bit value
- INT8 8-bit signed integer
-
-
-
-
- 3
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -------------------------------------------------------------------
- Name Value
- -------------------------------------------------------------------
- INT16 16-bit signed integer
- INT32 32-bit signed integer
- CARD8 8-bit unsigned integer
- CARD16 16-bit unsigned integer
- CARD32 32-bit unsigned integer
- TIMESTAMP CARD32
- BITGRAVITY {Forget, Static, NorthWest, North, NorthEast, West,
- Center,
- East, SouthWest, South, SouthEast}
- WINGRAVITY {Unmap, Static, NorthWest, North, NorthEast, West,
- Center,
- East, SouthWest, South, SouthEast}
- BOOL {True, False}
- EVENT {KeyPress, KeyRelease, OwnerGrabButton,
- ButtonPress,
- ButtonRelease, EnterWindow, LeaveWindow,
- PointerMotion,
- PointerMotionHint, Button1Motion, Button2Motion,
- Button3Motion, Button4Motion, Button5Motion,
- ButtonMotion,
- Exposure, VisibilityChange, StructureNotify,
- ResizeRedirect,
- SubstructureNotify, SubstructureRedirect,
- FocusChange,
- PropertyChange, ColormapChange, KeymapState}
- POINTEREVENT {ButtonPress, ButtonRelease, EnterWindow,
- LeaveWindow,
- PointerMotion, PointerMotionHint, Button1Motion,
- Button2Motion, Button3Motion, Button4Motion,
- Button5Motion,
- ButtonMotion, KeymapState}
- DEVICEEVENT {KeyPress, KeyRelease, ButtonPress, ButtonRelease,
- PointerMotion, Button1Motion, Button2Motion,
- Button3Motion,
- Button4Motion, Button5Motion, ButtonMotion}
- KEYSYM 32-bit value (top three bits guaranteed to be zero)
- KEYCODE CARD8
- BUTTON CARD8
- KEYMASK {Shift, Lock, Control, Mod1, Mod2, Mod3, Mod4,
- Mod5}
- BUTMASK {Button1, Button2, Button3, Button4, Button5}
- KEYBUTMASK KEYMASK or BUTMASK
- STRING8 LISTofCARD8
- STRING16 LISTofCHAR2B
- CHAR2B [byte1, byte2: CARD8]
- POINT [x, y: INT16]
- RECTANGLE [x, y: INT16,
- width, height: CARD16]
-
-
-
-
-
-
- 4
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -------------------------------------------------------------------
- Name Value
- -------------------------------------------------------------------
- ARC [x, y: INT16,
- width, height: CARD16,
- angle1, angle2: INT16]
- HOST [family: {Internet, DECnet, Chaos}
- address: LISTofBYTE]
-
-
- The [x,y] coordinates of a RECTANGLE specify the upper-left
- corner.
-
- The primary interpretation of large characters in a STRING16
- is that they are composed of two bytes used to index a two-
- dimensional matrix, hence, the use of CHAR2B rather than
- CARD16. This corresponds to the JIS/ISO method of indexing
- 2-byte characters. It is expected that most large fonts
- will be defined with 2-byte matrix indexing. For large
- fonts constructed with linear indexing, a CHAR2B can be
- interpreted as a 16-bit number by treating byte1 as the most
- significant byte. This means that clients should always
- transmit such 16-bit character values most significant byte
- first, as the server will never byte-swap CHAR2B quantities.
-
- The length, format, and interpretation of a HOST address are
- specific to the family (see ChangeHosts request).
-
- 4. Errors
-
- In general, when a request terminates with an error, the
- request has no side effects (that is, there is no partial
- execution). The only requests for which this is not true
- are ChangeWindowAttributes, ChangeGC, PolyText8, PolyText16,
- FreeColors, StoreColors, and ChangeKeyboardControl.
-
- The following error codes result from various requests as
- follows:
-
- -------------------------------------------------------------
- Error Description
- -------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 5
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -------------------------------------------------------------
- Error Description
- -------------------------------------------------------------
- Access An attempt is made to grab a key/button
- combination already grabbed by another
- client.
- An attempt is made to free a colormap
- entry not allocated by the client or to
- free an entry in a colormap that was cre-
- ated with all entries writable.
- An attempt is made to store into a read-
- only or an unallocated colormap entry.
- An attempt is made to modify the access
- control list from other than the local
- host (or otherwise authorized client).
- An attempt is made to select an event type
- that only one client can select at a time
- when another client has already selected
- it.
- Alloc The server failed to allocate the
- requested resource. Note that the
- explicit listing of Alloc errors in
- request only covers allocation errors at a
- very coarse level and is not intended to
- cover all cases of a server running out of
- allocation space in the middle of service.
- The semantics when a server runs out of
- allocation space are left unspecified, but
- a server may generate an Alloc error on
- any request for this reason, and clients
- should be prepared to receive such errors
- and handle or discard them.
- Atom A value for an ATOM argument does not name
- a defined ATOM.
- Colormap A value for a COLORMAP argument does not
- name a defined COLORMAP.
- Cursor A value for a CURSOR argument does not
- name a defined CURSOR.
- Drawable A value for a DRAWABLE argument does not
- name a defined WINDOW or PIXMAP.
- Font A value for a FONT argument does not name
- a defined FONT.
- A value for a FONTABLE argument does not
- name a defined FONT or a defined GCONTEXT.
- GContext A value for a GCONTEXT argument does not
- name a defined GCONTEXT.
- IDChoice The value chosen for a resource identifier
- either is not included in the range
- assigned to the client or is already in
- use.
-
-
-
-
-
-
-
- 6
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -------------------------------------------------------------
- Error Description
- -------------------------------------------------------------
- Implementation The server does not implement some aspect
- of the request. A server that generates
- this error for a core request is defi-
- cient. As such, this error is not listed
- for any of the requests, but clients
- should be prepared to receive such errors
- and handle or discard them.
- Length The length of a request is shorter or
- longer than that required to minimally
- contain the arguments.
- The length of a request exceeds the maxi-
- mum length accepted by the server.
- Match An InputOnly window is used as a DRAWABLE.
- In a graphics request, the GCONTEXT argu-
- ment does not have the same root and depth
- as the destination DRAWABLE argument.
- Some argument (or pair of arguments) has
- the correct type and range, but it fails
- to match in some other way required by the
- request.
- Name A font or color of the specified name does
- not exist.
- Pixmap A value for a PIXMAP argument does not
- name a defined PIXMAP.
- Request The major or minor opcode does not specify
- a valid request.
- Value Some numeric value falls outside the range
- of values accepted by the request. Unless
- a specific range is specified for an argu-
- ment, the full range defined by the argu-
- ment's type is accepted. Any argument
- defined as a set of alternatives typically
- can generate this error (due to the encod-
- ing).
- Window A value for a WINDOW argument does not
- name a defined WINDOW.
- -------------------------------------------------------------
-
-
- Note
-
- The Atom, Colormap, Cursor, Drawable, Font,
- GContext, Pixmap, and Window errors are also used
- when the argument type is extended by union with a
- set of fixed alternatives, for example, <WINDOW or
- PointerRoot or None>.
-
-
-
-
-
-
-
-
- 7
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 5. Keyboards
-
- A KEYCODE represents a physical (or logical) key. Keycodes
- lie in the inclusive range [8,255]. A keycode value carries
- no intrinsic information, although server implementors may
- attempt to encode geometry information (for example, matrix)
- to be interpreted in a server-dependent fashion. The map-
- ping between keys and keycodes cannot be changed using the
- protocol.
-
- A KEYSYM is an encoding of a symbol on the cap of a key.
- The set of defined KEYSYMs include the character sets
- Latin-1, Latin-2, Latin-3, Latin-4, Kana, Arabic, Cyrillic,
- Greek, Tech, Special, Publish, APL, Hebrew, Thai, and Korean
- as well as a set of symbols common on keyboards (Return,
- Help, Tab, and so on). KEYSYMs with the most significant
- bit (of the 29 bits) set are reserved as vendor-specific.
-
- A list of KEYSYMs is associated with each KEYCODE. The list
- is intended to convey the set of symbols on the correspond-
- ing key. If the list (ignoring trailing NoSymbol entries)
- is a single KEYSYM ``K'', then the list is treated as if it
- were the list ``K NoSymbol K NoSymbol''. If the list
- (ignoring trailing NoSymbol entries) is a pair of KEYSYMs
- ``K1 K2'', then the list is treated as if it were the list
- ``K1 K2 K1 K2''. If the list (ignoring trailing NoSymbol
- entries) is a triple of KEYSYMs ``K1 K2 K3'', then the list
- is treated as if it were the list ``K1 K2 K3 NoSymbol''.
- When an explicit ``void'' element is desired in the list,
- the value VoidSymbol can be used.
-
- The first four elements of the list are split into two
- groups of KEYSYMs. Group 1 contains the first and second
- KEYSYMs, Group 2 contains the third and fourth KEYSYMs.
- Within each group, if the second element of the group is
- NoSymbol, then the group should be treated as if the second
- element were the same as the first element, except when the
- first element is an alphabetic KEYSYM ``K'' for which both
- lowercase and uppercase forms are defined. In that case,
- the group should be treated as if the first element were the
- lowercase form of ``K'' and the second element were the
- uppercase form of ``K''.
-
- The standard rules for obtaining a KEYSYM from a KeyPress
- event make use of only the Group 1 and Group 2 KEYSYMs; no
- interpretation of other KEYSYMs in the list is defined. The
- modifier state determines which group to use. Switching
- between groups is controlled by the KEYSYM named MODE
- SWITCH, by attaching that KEYSYM to some KEYCODE and attach-
- ing that KEYCODE to any one of the modifiers Mod1 through
- Mod5. This modifier is called the ``group modifier''. For
- any KEYCODE, Group 1 is used when the group modifier is off,
- and Group 2 is used when the group modifier is on.
-
-
-
-
- 8
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- The Lock modifier is interpreted as CapsLock when the KEYSYM
- named CAPS LOCK is attached to some KEYCODE and that KEYCODE
- is attached to the Lock modifier. The Lock modifier is
- interpreted as ShiftLock when the KEYSYM named SHIFT LOCK is
- attached to some KEYCODE and that KEYCODE is attached to the
- Lock modifier. If the Lock modifier could be interpreted as
- both CapsLock and ShiftLock, the CapsLock interpretation is
- used.
-
- The operation of ``keypad'' keys is controlled by the KEYSYM
- named NUM LOCK, by attaching that KEYSYM to some KEYCODE and
- attaching that KEYCODE to any one of the modifiers Mod1
- through Mod5. This modifier is called the ``numlock modi-
- fier''. The standard KEYSYMs with the prefix KEYPAD in
- their name are called ``keypad'' KEYSYMs; these are KEYSYMS
- with numeric value in the hexadecimal range #xFF80 to #xFFBD
- inclusive. In addition, vendor-specific KEYSYMS in the hex-
- adecimal range #x11000000 to #x1100FFFF are also keypad
- KEYSYMs.
-
- Within a group, the choice of KEYSYM is determined by apply-
- ing the first rule that is satisfied from the following
- list:
-
- o The numlock modifier is on and the second KEYSYM is a
- keypad KEYSYM. In this case, if the Shift modifier is
- on, or if the Lock modifier is on and is interpreted as
- ShiftLock, then the first KEYSYM is used; otherwise,
- the second KEYSYM is used.
-
- o The Shift and Lock modifiers are both off. In this
- case, the first KEYSYM is used.
-
- o The Shift modifier is off, and the Lock modifier is on
- and is interpreted as CapsLock. In this case, the
- first KEYSYM is used, but if that KEYSYM is lowercase
- alphabetic, then the corresponding uppercase KEYSYM is
- used instead.
-
- o The Shift modifier is on, and the Lock modifier is on
- and is interpreted as CapsLock. In this case, the sec-
- ond KEYSYM is used, but if that KEYSYM is lowercase
- alphabetic, then the corresponding uppercase KEYSYM is
- used instead.
-
- o The Shift modifier is on, or the Lock modifier is on
- and is interpreted as ShiftLock, or both. In this
- case, the second KEYSYM is used.
-
- The mapping between KEYCODEs and KEYSYMs is not used
- directly by the server; it is merely stored for reading and
- writing by clients.
-
-
-
-
-
- 9
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 6. Pointers
-
- Buttons are always numbered starting with one.
-
- 7. Predefined Atoms
-
- Predefined atoms are not strictly necessary and may not be
- useful in all environments, but they will eliminate many
- InternAtom requests in most applications. Note that they
- are predefined only in the sense of having numeric values,
- not in the sense of having required semantics. The core
- protocol imposes no semantics on these names, but semantics
- are specified in other X Consortium standards, such as the
- Inter-Client Communication Conventions Manual and the X Log-
- ical Font Description Conventions.
-
- The following names have predefined atom values. Note that
- uppercase and lowercase matter.
-
- ARC ITALIC_ANGLE STRING
- ATOM MAX_SPACE SUBSCRIPT_X
- BITMAP MIN_SPACE SUBSCRIPT_Y
- CAP_HEIGHT NORM_SPACE SUPERSCRIPT_X
- CARDINAL NOTICE SUPERSCRIPT_Y
- COLORMAP PIXMAP UNDERLINE_POSITION
- COPYRIGHT POINT UNDERLINE_THICKNESS
- CURSOR POINT_SIZE VISUALID
- CUT_BUFFER0 PRIMARY WEIGHT
- CUT_BUFFER1 QUAD_WIDTH WINDOW
- CUT_BUFFER2 RECTANGLE WM_CLASS
- CUT_BUFFER3 RESOLUTION WM_CLIENT_MACHINE
- CUT_BUFFER4 RESOURCE_MANAGER WM_COMMAND
- CUT_BUFFER5 RGB_BEST_MAP WM_HINTS
- CUT_BUFFER6 RGB_BLUE_MAP WM_ICON_NAME
- CUT_BUFFER7 RGB_COLOR_MAP WM_ICON_SIZE
- DRAWABLE RGB_DEFAULT_MAP WM_NAME
- END_SPACE RGB_GRAY_MAP WM_NORMAL_HINTS
- FAMILY_NAME RGB_GREEN_MAP WM_SIZE_HINTS
- FONT RGB_RED_MAP WM_TRANSIENT_FOR
- FONT_NAME SECONDARY WM_ZOOM_HINTS
- FULL_NAME STRIKEOUT_ASCENT X_HEIGHT
- INTEGER STRIKEOUT_DESCENT
-
-
- To avoid conflicts with possible future names for which
- semantics might be imposed (either at the protocol level or
- in terms of higher level user interface models), names
- beginning with an underscore should be used for atoms that
- are private to a particular vendor or organization. To
- guarantee no conflicts between vendors and organizations,
- additional prefixes need to be used. However, the protocol
- does not define the mechanism for choosing such prefixes.
- For names private to a single application or end user but
- stored in globally accessible locations, it is suggested
-
-
-
- 10
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- that two leading underscores be used to avoid conflicts with
- other names.
-
- 8. Connection Setup
-
- For remote clients, the X protocol can be built on top of
- any reliable byte stream.
-
- Connection Initiation
-
- The client must send an initial byte of data to identify the
- byte order to be employed. The value of the byte must be
- octal 102 or 154. The value 102 (ASCII uppercase B) means
- values are transmitted most significant byte first, and
- value 154 (ASCII lowercase l) means values are transmitted
- least significant byte first. Except where explicitly noted
- in the protocol, all 16-bit and 32-bit quantities sent by
- the client must be transmitted with this byte order, and all
- 16-bit and 32-bit quantities returned by the server will be
- transmitted with this byte order.
-
- Following the byte-order byte, the client sends the follow-
- ing information at connection setup:
-
- protocol-major-version: CARD16
- protocol-minor-version: CARD16
- authorization-protocol-name: STRING8
- authorization-protocol-data: STRING8
-
- The version numbers indicate what version of the protocol
- the client expects the server to implement.
-
- The authorization name indicates what authorization (and
- authentication) protocol the client expects the server to
- use, and the data is specific to that protocol. Specifica-
- tion of valid authorization mechanisms is not part of the
- core X protocol. A server that does not implement the pro-
- tocol the client expects or that only implements the host-
- based mechanism may simply ignore this information. If both
- name and data strings are empty, this is to be interpreted
- as ``no explicit authorization.''
-
- Server Response
-
- The client receives the following information at connection
- setup:
-
- success: {Failed, Success, Authenticate}
-
- The client receives the following additional data if the
- returned success value is Failed, and the connection is not
- successfully established:
-
-
-
-
-
- 11
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- protocol-major-version: CARD16
- protocol-minor-version: CARD16
- reason: STRING8
-
- The client receives the following additional data if the
- returned success value is Authenticate, and further authen-
- tication negotiation is required:
-
- reason: STRING8
-
- The contents of the reason string are specific to the autho-
- rization protocol in use. The semantics of this authentica-
- tion negotiation are not constrained, except that the nego-
- tiation must eventually terminate with a reply from the
- server containing a success value of Failed or Success.
-
- The client receives the following additional data if the
- returned success value is Success, and the connection is
- successfully established:
-
- protocol-major-version: CARD16
- protocol-minor-version: CARD16
- vendor: STRING8
- release-number: CARD32
- resource-id-base, resource-id-mask: CARD32
- image-byte-order: {LSBFirst, MSBFirst}
- bitmap-scanline-unit: {8, 16, 32}
- bitmap-scanline-pad: {8, 16, 32}
- bitmap-bit-order: {LeastSignificant, MostSignificant}
- pixmap-formats: LISTofFORMAT
- roots: LISTofSCREEN
- motion-buffer-size: CARD32
- maximum-request-length: CARD16
- min-keycode, max-keycode: KEYCODE
-
- where:
-
- FORMAT: [depth: CARD8,
- bits-per-pixel: {1, 4, 8, 16, 24, 32}
- scanline-pad: {8, 16, 32}]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 12
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- SCREEN: [root: WINDOW
- width-in-pixels, height-in-pixels:
- CARD16
- width-in-millimeters, height-in-mil-
- limeters: CARD16
- allowed-depths: LISTofDEPTH
- root-depth: CARD8
- root-visual: VISUALID
- default-colormap: COLORMAP
- white-pixel, black-pixel: CARD32
- min-installed-maps, max-installed-maps:
- CARD16
- backing-stores: {Never, WhenMapped,
- Always}
- save-unders: BOOL
- current-input-masks: SETofEVENT]
-
- DEPTH: [depth: CARD8
- visuals: LISTofVISUALTYPE]
-
- VISUALTYPE: [visual-id: VISUALID
- class: {StaticGray, StaticColor,
- TrueColor, GrayScale,
- PseudoColor, DirectColor}
- red-mask, green-mask, blue-mask: CARD32
- bits-per-rgb-value: CARD8
- colormap-entries: CARD16]
-
-
- Server Information
-
- The information that is global to the server is:
-
- The protocol version numbers are an escape hatch in case
- future revisions of the protocol are necessary. In general,
- the major version would increment for incompatible changes,
- and the minor version would increment for small upward com-
- patible changes. Barring changes, the major version will be
- 11, and the minor version will be 0. The protocol version
- numbers returned indicate the protocol the server actually
- supports. This might not equal the version sent by the
- client. The server can (but need not) refuse connections
- from clients that offer a different version than the server
- supports. A server can (but need not) support more than one
- version simultaneously.
-
- The vendor string gives some identification of the owner of
- the server implementation. The vendor controls the seman-
- tics of the release number.
-
- The resource-id-mask contains a single contiguous set of
- bits (at least 18). The client allocates resource IDs for
- types WINDOW, PIXMAP, CURSOR, FONT, GCONTEXT, and COLORMAP
- by choosing a value with only some subset of these bits set
-
-
-
- 13
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- and ORing it with resource-id-base. Only values constructed
- in this way can be used to name newly created resources over
- this connection. Resource IDs never have the top three bits
- set. The client is not restricted to linear or contiguous
- allocation of resource IDs. Once an ID has been freed, it
- can be reused. An ID must be unique with respect to the IDs
- of all other resources, not just other resources of the same
- type. However, note that the value spaces of resource iden-
- tifiers, atoms, visualids, and keysyms are distinguished by
- context, and as such, are not required to be disjoint; for
- example, a given numeric value might be both a valid window
- ID, a valid atom, and a valid keysym.
-
- Although the server is in general responsible for byte-swap-
- ping data to match the client, images are always transmitted
- and received in formats (including byte order) specified by
- the server. The byte order for images is given by image-
- byte-order and applies to each scanline unit in XY format
- (bitmap format) and to each pixel value in Z format.
-
- A bitmap is represented in scanline order. Each scanline is
- padded to a multiple of bits as given by bitmap-scanline-
- pad. The pad bits are of arbitrary value. The scanline is
- quantized in multiples of bits as given by bitmap-scanline-
- unit. The bitmap-scanline-unit is always less than or equal
- to the bitmap-scanline-pad. Within each unit, the leftmost
- bit in the bitmap is either the least significant or most
- significant bit in the unit, as given by bitmap-bit-order.
- If a pixmap is represented in XY format, each plane is rep-
- resented as a bitmap, and the planes appear from most sig-
- nificant to least significant in bit order with no padding
- between planes.
-
- Pixmap-formats contains one entry for each depth value. The
- entry describes the Z format used to represent images of
- that depth. An entry for a depth is included if any screen
- supports that depth, and all screens supporting that depth
- must support only that Z format for that depth. In Z for-
- mat, the pixels are in scanline order, left to right within
- a scanline. The number of bits used to hold each pixel is
- given by bits-per-pixel. Bits-per-pixel may be larger than
- strictly required by the depth, in which case the least sig-
- nificant bits are used to hold the pixmap data, and the val-
- ues of the unused high-order bits are undefined. When the
- bits-per-pixel is 4, the order of nibbles in the byte is the
- same as the image byte-order. When the bits-per-pixel is 1,
- the format is identical for bitmap format. Each scanline is
- padded to a multiple of bits as given by scanline-pad. When
- bits-per-pixel is 1, this will be identical to bitmap-scan-
- line-pad.
-
- How a pointing device roams the screens is up to the server
- implementation and is transparent to the protocol. No geom-
- etry is defined among screens.
-
-
-
- 14
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- The server may retain the recent history of pointer motion
- and do so to a finer granularity than is reported by Motion-
- Notify events. The GetMotionEvents request makes such his-
- tory available. The motion-buffer-size gives the approxi-
- mate maximum number of elements in the history buffer.
-
- Maximum-request-length specifies the maximum length of a
- request accepted by the server, in 4-byte units. That is,
- length is the maximum value that can appear in the length
- field of a request. Requests larger than this maximum gen-
- erate a Length error, and the server will read and simply
- discard the entire request. Maximum-request-length will
- always be at least 4096 (that is, requests of length up to
- and including 16384 bytes will be accepted by all servers).
-
- Min-keycode and max-keycode specify the smallest and largest
- keycode values transmitted by the server. Min-keycode is
- never less than 8, and max-keycode is never greater than
- 255. Not all keycodes in this range are required to have
- corresponding keys.
-
- Screen Information
-
- The information that applies per screen is:
-
- The allowed-depths specifies what pixmap and window depths
- are supported. Pixmaps are supported for each depth listed,
- and windows of that depth are supported if at least one
- visual type is listed for the depth. A pixmap depth of one
- is always supported and listed, but windows of depth one
- might not be supported. A depth of zero is never listed,
- but zero-depth InputOnly windows are always supported.
-
- Root-depth and root-visual specify the depth and visual type
- of the root window. Width-in-pixels and height-in-pixels
- specify the size of the root window (which cannot be
- changed). The class of the root window is always
- InputOutput. Width-in-millimeters and height-in-millimeters
- can be used to determine the physical size and the aspect
- ratio.
-
- The default-colormap is the one initially associated with
- the root window. Clients with minimal color requirements
- creating windows of the same depth as the root may want to
- allocate from this map by default.
-
- Black-pixel and white-pixel can be used in implementing a
- monochrome application. These pixel values are for perma-
- nently allocated entries in the default-colormap. The
- actual RGB values may be settable on some screens and, in
- any case, may not actually be black and white. The names
- are intended to convey the expected relative intensity of
- the colors.
-
-
-
-
- 15
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- The border of the root window is initially a pixmap filled
- with the black-pixel. The initial background of the root
- window is a pixmap filled with some unspecified two-color
- pattern using black-pixel and white-pixel.
-
- Min-installed-maps specifies the number of maps that can be
- guaranteed to be installed simultaneously (with
- InstallColormap), regardless of the number of entries allo-
- cated in each map. Max-installed-maps specifies the maximum
- number of maps that might possibly be installed simultane-
- ously, depending on their allocations. Multiple static-
- visual colormaps with identical contents but differing in
- resource ID should be considered as a single map for the
- purposes of this number. For the typical case of a single
- hardware colormap, both values will be 1.
-
- Backing-stores indicates when the server supports backing
- stores for this screen, although it may be storage limited
- in the number of windows it can support at once. If save-
- unders is True, the server can support the save-under mode
- in CreateWindow and ChangeWindowAttributes, although again
- it may be storage limited.
-
- The current-input-events is what GetWindowAttributes would
- return for the all-event-masks for the root window.
-
- Visual Information
-
- The information that applies per visual-type is:
-
- A given visual type might be listed for more than one depth
- or for more than one screen.
-
- For PseudoColor, a pixel value indexes a colormap to produce
- independent RGB values; the RGB values can be changed dynam-
- ically. GrayScale is treated in the same way as PseudoColor
- except which primary drives the screen is undefined; thus,
- the client should always store the same value for red,
- green, and blue in colormaps. For DirectColor, a pixel
- value is decomposed into separate RGB subfields, and each
- subfield separately indexes the colormap for the correspond-
- ing value. The RGB values can be changed dynamically.
- TrueColor is treated in the same way as DirectColor except
- the colormap has predefined read-only RGB values. These
- values are server-dependent but provide linear or near-lin-
- ear increasing ramps in each primary. StaticColor is
- treated in the same way as PseudoColor except the colormap
- has predefined read-only RGB values, which are server-depen-
- dent. StaticGray is treated in the same way as StaticColor
- except the red, green, and blue values are equal for any
- single pixel value, resulting in shades of gray. StaticGray
- with a two-entry colormap can be thought of as monochrome.
-
-
-
-
-
- 16
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- The red-mask, green-mask, and blue-mask are only defined for
- DirectColor and TrueColor. Each has one contiguous set of
- bits set to 1 with no intersections. Usually each mask has
- the same number of bits set to 1.
-
- The bits-per-rgb-value specifies the log base 2 of the num-
- ber of distinct color intensity values (individually) of
- red, green, and blue. This number need not bear any rela-
- tion to the number of colormap entries. Actual RGB values
- are always passed in the protocol within a 16-bit spectrum,
- with 0 being minimum intensity and 65535 being the maximum
- intensity. On hardware that provides a linear zero-based
- intensity ramp, the following relationship exists:
-
-
- hw-intensity = protocol-intensity / (65536 / total-hw-intensities)
-
-
- Colormap entries are indexed from 0. The colormap-entries
- defines the number of available colormap entries in a newly
- created colormap. For DirectColor and TrueColor, this will
- usually be 2 to the power of the maximum number of bits set
- to 1 in red-mask, green-mask, and blue-mask.
-
- 9. Requests
-
- __
- | CreateWindow
-
- wid, parent: WINDOW
- class: {InputOutput, InputOnly, CopyFromParent}
- depth: CARD8
- visual: VISUALID or CopyFromParent
- x, y: INT16
- width, height, border-width: CARD16
- value-mask: BITMASK
- value-list: LISTofVALUE
-
- Errors: Alloc, Colormap, Cursor, IDChoice, Match, Pixmap,
- |__ Value, Window
-
-
- This request creates an unmapped window and assigns the
- identifier wid to it.
-
- A class of CopyFromParent means the class is taken from the
- parent. A depth of zero for class InputOutput or Copy-
- FromParent means the depth is taken from the parent. A
- visual of CopyFromParent means the visual type is taken from
- the parent. For class InputOutput, the visual type and
- depth must be a combination supported for the screen (or a
- Match error results). The depth need not be the same as the
- parent, but the parent must not be of class InputOnly (or a
- Match error results). For class InputOnly, the depth must
-
-
-
- 17
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- be zero (or a Match error results), and the visual must be
- one supported for the screen (or a Match error results).
- However, the parent can have any depth and class.
-
- The server essentially acts as if InputOnly windows do not
- exist for the purposes of graphics requests, exposure pro-
- cessing, and VisibilityNotify events. An InputOnly window
- cannot be used as a drawable (as a source or destination for
- graphics requests). InputOnly and InputOutput windows act
- identically in other respects-properties, grabs, input con-
- trol, and so on.
-
- The coordinate system has the X axis horizontal and the Y
- axis vertical with the origin [0, 0] at the upper-left cor-
- ner. Coordinates are integral, in terms of pixels, and
- coincide with pixel centers. Each window and pixmap has its
- own coordinate system. For a window, the origin is inside
- the border at the inside, upper-left corner.
-
- The x and y coordinates for the window are relative to the
- parent's origin and specify the position of the upper-left
- outer corner of the window (not the origin). The width and
- height specify the inside size (not including the border)
- and must be nonzero (or a Value error results). The border-
- width for an InputOnly window must be zero (or a Match error
- results).
-
- The window is placed on top in the stacking order with
- respect to siblings.
-
- The value-mask and value-list specify attributes of the win-
- dow that are to be explicitly initialized. The possible
- values are:
-
- -----------------------------------------------
- Attribute Type
- -----------------------------------------------
- background-pixmap PIXMAP or None or Paren-
- tRelative
- background-pixel CARD32
- border-pixmap PIXMAP or CopyFromParent
- border-pixel CARD32
- bit-gravity BITGRAVITY
- win-gravity WINGRAVITY
- backing-store {NotUseful, WhenMapped,
- Always}
- backing-planes CARD32
- backing-pixel CARD32
- save-under BOOL
- event-mask SETofEVENT
- do-not-propagate- SETofDEVICEEVENT
- mask
- override-redirect BOOL
-
-
-
-
- 18
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------
- Attribute Type
- -----------------------------------------------
- colormap COLORMAP or CopyFromParent
- cursor CURSOR or None
- -----------------------------------------------
-
-
- The default values when attributes are not explicitly ini-
- tialized are:
-
- -----------------------------------
- Attribute Default
- -----------------------------------
- background-pixmap None
- border-pixmap CopyFromParent
- bit-gravity Forget
- win-gravity NorthWest
- backing-store NotUseful
- backing-planes all ones
- backing-pixel zero
- save-under False
- event-mask {} (empty set)
- do-not-propagate- {} (empty set)
- mask
- override-redirect False
- colormap CopyFromParent
- cursor None
- -----------------------------------
-
-
- Only the following attributes are defined for InputOnly win-
- dows:
-
- o win-gravity
-
- o event-mask
-
- o do-not-propagate-mask
-
- o override-redirect
-
- o cursor
-
- It is a Match error to specify any other attributes for
- InputOnly windows.
-
- If background-pixmap is given, it overrides the default
- background-pixmap. The background pixmap and the window
- must have the same root and the same depth (or a Match error
- results). Any size pixmap can be used, although some sizes
- may be faster than others. If background None is specified,
- the window has no defined background. If background Paren-
- tRelative is specified, the parent's background is used, but
-
-
-
- 19
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- the window must have the same depth as the parent (or a
- Match error results). If the parent has background None,
- then the window will also have background None. A copy of
- the parent's background is not made. The parent's back-
- ground is reexamined each time the window background is
- required. If background-pixel is given, it overrides the
- default background-pixmap and any background-pixmap given
- explicitly, and a pixmap of undefined size filled with back-
- ground-pixel is used for the background. Range checking is
- not performed on the background-pixel value; it is simply
- truncated to the appropriate number of bits. For a Paren-
- tRelative background, the background tile origin always
- aligns with the parent's background tile origin. Otherwise,
- the background tile origin is always the window origin.
-
- When no valid contents are available for regions of a window
- and the regions are either visible or the server is main-
- taining backing store, the server automatically tiles the
- regions with the window's background unless the window has a
- background of None. If the background is None, the previous
- screen contents from other windows of the same depth as the
- window are simply left in place if the contents come from
- the parent of the window or an inferior of the parent; oth-
- erwise, the initial contents of the exposed regions are
- undefined. Exposure events are then generated for the
- regions, even if the background is None.
-
- The border tile origin is always the same as the background
- tile origin. If border-pixmap is given, it overrides the
- default border-pixmap. The border pixmap and the window
- must have the same root and the same depth (or a Match error
- results). Any size pixmap can be used, although some sizes
- may be faster than others. If CopyFromParent is given, the
- parent's border pixmap is copied (subsequent changes to the
- parent's border attribute do not affect the child), but the
- window must have the same depth as the parent (or a Match
- error results). The pixmap might be copied by sharing the
- same pixmap object between the child and parent or by making
- a complete copy of the pixmap contents. If border-pixel is
- given, it overrides the default border-pixmap and any bor-
- der-pixmap given explicitly, and a pixmap of undefined size
- filled with border-pixel is used for the border. Range
- checking is not performed on the border-pixel value; it is
- simply truncated to the appropriate number of bits.
-
- Output to a window is always clipped to the inside of the
- window, so that the border is never affected.
-
- The bit-gravity defines which region of the window should be
- retained if the window is resized, and win-gravity defines
- how the window should be repositioned if the parent is
- resized (see ConfigureWindow request).
-
-
-
-
-
- 20
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- A backing-store of WhenMapped advises the server that main-
- taining contents of obscured regions when the window is
- mapped would be beneficial. A backing-store of Always
- advises the server that maintaining contents even when the
- window is unmapped would be beneficial. In this case, the
- server may generate an exposure event when the window is
- created. A value of NotUseful advises the server that main-
- taining contents is unnecessary, although a server may still
- choose to maintain contents while the window is mapped.
- Note that if the server maintains contents, then the server
- should maintain complete contents not just the region within
- the parent boundaries, even if the window is larger than its
- parent. While the server maintains contents, exposure
- events will not normally be generated, but the server may
- stop maintaining contents at any time.
-
- If save-under is True, the server is advised that when this
- window is mapped, saving the contents of windows it obscures
- would be beneficial.
-
- When the contents of obscured regions of a window are being
- maintained, regions obscured by noninferior windows are
- included in the destination (and source, when the window is
- the source) of graphics requests, but regions obscured by
- inferior windows are not included.
-
- The backing-planes indicates (with bits set to 1) which bit
- planes of the window hold dynamic data that must be pre-
- served in backing-stores and during save-unders. The back-
- ing-pixel specifies what value to use in planes not covered
- by backing-planes. The server is free to save only the
- specified bit planes in the backing-store or save-under and
- regenerate the remaining planes with the specified pixel
- value. Any bits beyond the specified depth of the window in
- these values are simply ignored.
-
- The event-mask defines which events the client is interested
- in for this window (or for some event types, inferiors of
- the window). The do-not-propagate-mask defines which events
- should not be propagated to ancestor windows when no client
- has the event type selected in this window.
-
- The override-redirect specifies whether map and configure
- requests on this window should override a SubstructureRedi-
- rect on the parent, typically to inform a window manager not
- to tamper with the window.
-
- The colormap specifies the colormap that best reflects the
- true colors of the window. Servers capable of supporting
- multiple hardware colormaps may use this information, and
- window managers may use it for InstallColormap requests.
- The colormap must have the same visual type and root as the
- window (or a Match error results). If CopyFromParent is
- specified, the parent's colormap is copied (subsequent
-
-
-
- 21
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- changes to the parent's colormap attribute do not affect the
- child). However, the window must have the same visual type
- as the parent (or a Match error results), and the parent
- must not have a colormap of None (or a Match error results).
- For an explanation of None, see FreeColormap request. The
- colormap is copied by sharing the colormap object between
- the child and the parent, not by making a complete copy of
- the colormap contents.
-
- If a cursor is specified, it will be used whenever the
- pointer is in the window. If None is specified, the par-
- ent's cursor will be used when the pointer is in the window,
- and any change in the parent's cursor will cause an immedi-
- ate change in the displayed cursor.
-
- This request generates a CreateNotify event.
-
- The background and border pixmaps and the cursor may be
- freed immediately if no further explicit references to them
- are to be made.
-
- Subsequent drawing into the background or border pixmap has
- an undefined effect on the window state. The server might
- or might not make a copy of the pixmap.
-
-
- __
- | ChangeWindowAttributes
-
- window: WINDOW
- value-mask: BITMASK
- value-list: LISTofVALUE
-
- Errors: Access, Colormap, Cursor, Match, Pixmap, Value,
- |__ Window
-
-
- The value-mask and value-list specify which attributes are
- to be changed. The values and restrictions are the same as
- for CreateWindow.
-
- Setting a new background, whether by background-pixmap or
- background-pixel, overrides any previous background. Set-
- ting a new border, whether by border-pixel or border-pixmap,
- overrides any previous border.
-
- Changing the background does not cause the window contents
- to be changed. Setting the border or changing the back-
- ground such that the border tile origin changes causes the
- border to be repainted. Changing the background of a root
- window to None or ParentRelative restores the default back-
- ground pixmap. Changing the border of a root window to
- CopyFromParent restores the default border pixmap.
-
-
-
-
- 22
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Changing the win-gravity does not affect the current posi-
- tion of the window.
-
- Changing the backing-store of an obscured window to When-
- Mapped or Always or changing the backing-planes, backing-
- pixel, or save-under of a mapped window may have no immedi-
- ate effect.
-
- Multiple clients can select input on the same window; their
- event-masks are disjoint. When an event is generated, it
- will be reported to all interested clients. However, only
- one client at a time can select for SubstructureRedirect,
- only one client at a time can select for ResizeRedirect, and
- only one client at a time can select for ButtonPress. An
- attempt to violate these restrictions results in an Access
- error.
-
- There is only one do-not-propagate-mask for a window, not
- one per client.
-
- Changing the colormap of a window (by defining a new map,
- not by changing the contents of the existing map) generates
- a ColormapNotify event. Changing the colormap of a visible
- window might have no immediate effect on the screen (see
- InstallColormap request).
-
- Changing the cursor of a root window to None restores the
- default cursor.
-
- The order in which attributes are verified and altered is
- server-dependent. If an error is generated, a subset of the
- attributes may have been altered.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 23
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | GetWindowAttributes
-
- window: WINDOW
-
- ->
-
- visual: VISUALID
- class: {InputOutput, InputOnly}
- bit-gravity: BITGRAVITY
- win-gravity: WINGRAVITY
- backing-store: {NotUseful, WhenMapped, Always}
- backing-planes: CARD32
- backing-pixel: CARD32
- save-under: BOOL
- colormap: COLORMAP or None
- map-is-installed: BOOL
- map-state: {Unmapped, Unviewable, Viewable}
- all-event-masks, your-event-mask: SETofEVENT
- do-not-propagate-mask: SETofDEVICEEVENT
- override-redirect: BOOL
-
- |__ Errors: Window
-
-
- This request returns the current attributes of the window.
- A window is Unviewable if it is mapped but some ancestor is
- unmapped. All-event-masks is the inclusive-OR of all event
- masks selected on the window by clients. Your-event-mask is
- the event mask selected by the querying client.
-
-
- __
- | DestroyWindow
-
- window: WINDOW
-
- |__ Errors: Window
-
-
- If the argument window is mapped, an UnmapWindow request is
- performed automatically. The window and all inferiors are
- then destroyed, and a DestroyNotify event is generated for
- each window. The ordering of the DestroyNotify events is
- such that for any given window, DestroyNotify is generated
- on all inferiors of the window before being generated on the
- window itself. The ordering among siblings and across sub-
- hierarchies is not otherwise constrained.
-
- Normal exposure processing on formerly obscured windows is
- performed.
-
- If the window is a root window, this request has no effect.
-
-
-
-
-
- 24
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | DestroySubwindows
-
- window: WINDOW
-
- |__ Errors: Window
-
-
- This request performs a DestroyWindow request on all chil-
- dren of the window, in bottom-to-top stacking order.
-
-
- __
- | ChangeSaveSet
-
- window: WINDOW
- mode: {Insert, Delete}
-
- Errors:
- |__ Match, Value, Window
-
-
- This request adds or removes the specified window from the
- client's save-set. The window must have been created by
- some other client (or a Match error results). For further
- information about the use of the save-set, see section 10.
-
- When windows are destroyed, the server automatically removes
- them from the save-set.
-
-
- __
- | ReparentWindow
-
- window, parent: WINDOW
- x, y: INT16
-
- |__ Errors: Match, Window
-
-
- If the window is mapped, an UnmapWindow request is performed
- automatically first. The window is then removed from its
- current position in the hierarchy and is inserted as a child
- of the specified parent. The x and y coordinates are rela-
- tive to the parent's origin and specify the new position of
- the upper-left outer corner of the window. The window is
- placed on top in the stacking order with respect to sib-
- lings. A ReparentNotify event is then generated. The over-
- ride-redirect attribute of the window is passed on in this
- event; a value of True indicates that a window manager
- should not tamper with this window. Finally, if the window
- was originally mapped, a MapWindow request is performed
- automatically.
-
-
-
-
-
- 25
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Normal exposure processing on formerly obscured windows is
- performed. The server might not generate exposure events
- for regions from the initial unmap that are immediately
- obscured by the final map.
-
- A Match error is generated if:
-
- o The new parent is not on the same screen as the old
- parent.
-
- o The new parent is the window itself or an inferior of
- the window.
-
- o The new parent is InputOnly, and the window is not.
-
- o The window has a ParentRelative background, and the new
- parent is not the same depth as the window.
-
-
- __
- | MapWindow
-
- window: WINDOW
-
- |__ Errors: Window
-
-
- If the window is already mapped, this request has no effect.
-
- If the override-redirect attribute of the window is False
- and some other client has selected SubstructureRedirect on
- the parent, then a MapRequest event is generated, but the
- window remains unmapped. Otherwise, the window is mapped,
- and a MapNotify event is generated.
-
- If the window is now viewable and its contents have been
- discarded, the window is tiled with its background (if no
- background is defined, the existing screen contents are not
- altered), and zero or more exposure events are generated.
- If a backing-store has been maintained while the window was
- unmapped, no exposure events are generated. If a backing-
- store will now be maintained, a full-window exposure is
- always generated. Otherwise, only visible regions may be
- reported. Similar tiling and exposure take place for any
- newly viewable inferiors.
-
-
-
-
-
-
-
-
-
-
-
-
- 26
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | MapSubwindows
-
- window: WINDOW
-
- |__ Errors: Window
-
-
- This request performs a MapWindow request on all unmapped
- children of the window, in top-to-bottom stacking order.
-
-
- __
- | UnmapWindow
-
- window: WINDOW
-
- |__ Errors: Window
-
-
- If the window is already unmapped, this request has no
- effect. Otherwise, the window is unmapped, and an UnmapNo-
- tify event is generated. Normal exposure processing on for-
- merly obscured windows is performed.
-
-
- __
- | UnmapSubwindows
-
- window: WINDOW
-
- |__ Errors: Window
-
-
- This request performs an UnmapWindow request on all mapped
- children of the window, in bottom-to-top stacking order.
-
-
- __
- | ConfigureWindow
-
- window: WINDOW
- value-mask: BITMASK
- value-list: LISTofVALUE
-
- |__ Errors: Match, Value, Window
-
-
- This request changes the configuration of the window. The
- value-mask and value-list specify which values are to be
- given. The possible values are:
-
-
-
-
-
-
-
- 27
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------
- Attribute Type
- -----------------------------------------------
- x INT16
- y INT16
- width CARD16
- height CARD16
- border-width CARD16
- sibling WINDOW
- stack-mode {Above, Below, TopIf, BottomIf,
- Opposite}
- -----------------------------------------------
-
-
- The x and y coordinates are relative to the parent's origin
- and specify the position of the upper-left outer corner of
- the window. The width and height specify the inside size,
- not including the border, and must be nonzero (or a Value
- error results). Those values not specified are taken from
- the existing geometry of the window. Note that changing
- just the border-width leaves the outer-left corner of the
- window in a fixed position but moves the absolute position
- of the window's origin. It is a Match error to attempt to
- make the border-width of an InputOnly window nonzero.
-
- If the override-redirect attribute of the window is False
- and some other client has selected SubstructureRedirect on
- the parent, a ConfigureRequest event is generated, and no
- further processing is performed. Otherwise, the following
- is performed:
-
- If some other client has selected ResizeRedirect on the win-
- dow and the inside width or height of the window is being
- changed, a ResizeRequest event is generated, and the current
- inside width and height are used instead. Note that the
- override-redirect attribute of the window has no effect on
- ResizeRedirect and that SubstructureRedirect on the parent
- has precedence over ResizeRedirect on the window.
-
- The geometry of the window is changed as specified, the win-
- dow is restacked among siblings, and a ConfigureNotify event
- is generated if the state of the window actually changes.
- If the inside width or height of the window has actually
- changed, then children of the window are affected, according
- to their win-gravity. Exposure processing is performed on
- formerly obscured windows (including the window itself and
- its inferiors if regions of them were obscured but now are
- not). Exposure processing is also performed on any new
- regions of the window (as a result of increasing the width
- or height) and on any regions where window contents are
- lost.
-
- If the inside width or height of a window is not changed but
- the window is moved or its border is changed, then the
-
-
-
- 28
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- contents of the window are not lost but move with the win-
- dow. Changing the inside width or height of the window
- causes its contents to be moved or lost, depending on the
- bit-gravity of the window. It also causes children to be
- reconfigured, depending on their win-gravity. For a change
- of width and height of W and H, we define the [x, y] pairs
- as:
-
- -----------------------
- Direction Deltas
- -----------------------
- NorthWest [0, 0]
- North [W/2, 0]
- NorthEast [W, 0]
- West [0, H/2]
- Center [W/2, H/2]
- East [W, H/2]
- SouthWest [0, H]
- South [W/2, H]
- SouthEast [W, H]
- -----------------------
-
-
- When a window with one of these bit-gravities is resized,
- the corresponding pair defines the change in position of
- each pixel in the window. When a window with one of these
- win-gravities has its parent window resized, the correspond-
- ing pair defines the change in position of the window within
- the parent. This repositioning generates a GravityNotify
- event. GravityNotify events are generated after the Config-
- ureNotify event is generated.
-
- A gravity of Static indicates that the contents or origin
- should not move relative to the origin of the root window.
- If the change in size of the window is coupled with a change
- in position of [X, Y], then for bit-gravity the change in
- position of each pixel is [-X, -Y] and for win-gravity the
- change in position of a child when its parent is so resized
- is [-X, -Y]. Note that Static gravity still only takes
- effect when the width or height of the window is changed,
- not when the window is simply moved.
-
- A bit-gravity of Forget indicates that the window contents
- are always discarded after a size change, even if backing-
- store or save-under has been requested. The window is tiled
- with its background (except, if no background is defined,
- the existing screen contents are not altered) and zero or
- more exposure events are generated.
-
- The contents and borders of inferiors are not affected by
- their parent's bit-gravity. A server is permitted to ignore
- the specified bit-gravity and use Forget instead.
-
-
-
-
-
- 29
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- A win-gravity of Unmap is like NorthWest, but the child is
- also unmapped when the parent is resized, and an UnmapNotify
- event is generated. UnmapNotify events are generated after
- the ConfigureNotify event is generated.
-
- If a sibling and a stack-mode are specified, the window is
- restacked as follows:
-
- Above The window is placed just above the sibling.
- Below The window is placed just below the sibling.
- TopIf If the sibling occludes the window, then the
- window is placed at the top of the stack.
- BottomIf If the window occludes the sibling, then the
- window is placed at the bottom of the stack.
- Opposite If the sibling occludes the window, then the
- window is placed at the top of the stack. Oth-
- erwise, if the window occludes the sibling,
- then the window is placed at the bottom of the
- stack.
-
-
- If a stack-mode is specified but no sibling is specified,
- the window is restacked as follows:
-
- Above The window is placed at the top of the stack.
- Below The window is placed at the bottom of the
- stack.
- TopIf If any sibling occludes the window, then the
- window is placed at the top of the stack.
- BottomIf If the window occludes any sibling, then the
- window is placed at the bottom of the stack.
- Opposite If any sibling occludes the window, then the
- window is placed at the top of the stack. Oth-
- erwise, if the window occludes any sibling,
- then the window is placed at the bottom of the
- stack.
-
-
- It is a Match error if a sibling is specified without a
- stack-mode or if the window is not actually a sibling.
-
- Note that the computations for BottomIf, TopIf, and Opposite
- are performed with respect to the window's final geometry
- (as controlled by the other arguments to the request), not
- to its initial geometry.
-
- Attempts to configure a root window have no effect.
-
-
-
-
-
-
-
-
-
-
- 30
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | CirculateWindow
-
- window: WINDOW
- direction: {RaiseLowest, LowerHighest}
-
- |__ Errors: Value, Window
-
-
- If some other client has selected SubstructureRedirect on
- the window, then a CirculateRequest event is generated, and
- no further processing is performed. Otherwise, the follow-
- ing is performed, and then a CirculateNotify event is gener-
- ated if the window is actually restacked.
-
- For RaiseLowest, CirculateWindow raises the lowest mapped
- child (if any) that is occluded by another child to the top
- of the stack. For LowerHighest, CirculateWindow lowers the
- highest mapped child (if any) that occludes another child to
- the bottom of the stack. Exposure processing is performed
- on formerly obscured windows.
-
-
- __
- | GetGeometry
-
- drawable: DRAWABLE
-
- ->
-
- root: WINDOW
- depth: CARD8
- x, y: INT16
- width, height, border-width: CARD16
-
- |__ Errors: Drawable
-
-
- This request returns the root and current geometry of the
- drawable. The depth is the number of bits per pixel for the
- object. The x, y, and border-width will always be zero for
- pixmaps. For a window, the x and y coordinates specify the
- upper-left outer corner of the window relative to its par-
- ent's origin, and the width and height specify the inside
- size, not including the border.
-
- It is legal to pass an InputOnly window as a drawable to
- this request.
-
-
-
-
-
-
-
-
-
-
- 31
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | QueryTree
-
- window: WINDOW
-
- ->
-
- root: WINDOW
- parent: WINDOW or None
- children: LISTofWINDOW
-
- |__ Errors: Window
-
-
- This request returns the root, the parent, and the children
- of the window. The children are listed in bottom-to-top
- stacking order.
-
-
- __
- | InternAtom
-
- name: STRING8
- only-if-exists: BOOL
-
- ->
-
- atom: ATOM or None
-
- |__ Errors: Alloc, Value
-
-
- This request returns the atom for the given name. If only-
- if-exists is False, then the atom is created if it does not
- exist. The string should use the ISO Latin-1 encoding.
- Uppercase and lowercase matter.
-
- The lifetime of an atom is not tied to the interning client.
- Atoms remain defined until server reset (see section 10).
-
-
- __
- | GetAtomName
-
- atom: ATOM
-
- ->
-
- name: STRING8
-
- |__ Errors: Atom
-
-
- This request returns the name for the given atom.
-
-
-
-
- 32
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | ChangeProperty
-
- window: WINDOW
- property, type: ATOM
- format: {8, 16, 32}
- mode: {Replace, Prepend, Append}
- data: LISTofINT8 or LISTofINT16 or LISTofINT32
-
- |__ Errors: Alloc, Atom, Match, Value, Window
-
-
- This request alters the property for the specified window.
- The type is uninterpreted by the server. The format speci-
- fies whether the data should be viewed as a list of 8-bit,
- 16-bit, or 32-bit quantities so that the server can cor-
- rectly byte-swap as necessary.
-
- If the mode is Replace, the previous property value is dis-
- carded. If the mode is Prepend or Append, then the type and
- format must match the existing property value (or a Match
- error results). If the property is undefined, it is treated
- as defined with the correct type and format with zero-length
- data. For Prepend, the data is tacked on to the beginning
- of the existing data, and for Append, it is tacked on to the
- end of the existing data.
-
- This request generates a PropertyNotify event on the window.
-
- The lifetime of a property is not tied to the storing
- client. Properties remain until explicitly deleted, until
- the window is destroyed, or until server reset (see section
- 10).
-
- The maximum size of a property is server-dependent and may
- vary dynamically.
-
-
- __
- | DeleteProperty
-
- window: WINDOW
- property: ATOM
-
- |__ Errors: Atom, Window
-
-
- This request deletes the property from the specified window
- if the property exists and generates a PropertyNotify event
- on the window unless the property does not exist.
-
-
-
-
-
-
-
-
- 33
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | GetProperty
-
- window: WINDOW
- property: ATOM
- type: ATOM or AnyPropertyType
- long-offset, long-length: CARD32
- delete: BOOL
-
- ->
-
- type: ATOM or None
- format: {0, 8, 16, 32}
- bytes-after: CARD32
- value: LISTofINT8 or LISTofINT16 or LISTofINT32
-
- |__ Errors: Atom, Value, Window
-
-
- If the specified property does not exist for the specified
- window, then the return type is None, the format and bytes-
- after are zero, and the value is empty. The delete argument
- is ignored in this case. If the specified property exists
- but its type does not match the specified type, then the
- return type is the actual type of the property, the format
- is the actual format of the property (never zero), the
- bytes-after is the length of the property in bytes (even if
- the format is 16 or 32), and the value is empty. The delete
- argument is ignored in this case. If the specified property
- exists and either AnyPropertyType is specified or the speci-
- fied type matches the actual type of the property, then the
- return type is the actual type of the property, the format
- is the actual format of the property (never zero), and the
- bytes-after and value are as follows, given:
-
- N = actual length of the stored property in bytes
- (even if the format is 16 or 32)
- I = 4 * long-offset
- T = N - I
- L = MINIMUM(T, 4 * long-length)
- A = N - (I + L)
-
-
- The returned value starts at byte index I in the property
- (indexing from 0), and its length in bytes is L. However,
- it is a Value error if long-offset is given such that L is
- negative. The value of bytes-after is A, giving the number
- of trailing unread bytes in the stored property. If delete
- is True and the bytes-after is zero, the property is also
- deleted from the window, and a PropertyNotify event is gen-
- erated on the window.
-
-
-
-
-
-
-
- 34
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | RotateProperties
-
- window: WINDOW
- delta: INT16
- properties: LISTofATOM
-
- |__ Errors: Atom, Match, Window
-
-
- If the property names in the list are viewed as being num-
- bered starting from zero, and there are N property names in
- the list, then the value associated with property name I
- becomes the value associated with property name (I + delta)
- mod N, for all I from zero to N - 1. The effect is to
- rotate the states by delta places around the virtual ring of
- property names (right for positive delta, left for negative
- delta).
-
- If delta mod N is nonzero, a PropertyNotify event is gener-
- ated for each property in the order listed.
-
- If an atom occurs more than once in the list or no property
- with that name is defined for the window, a Match error is
- generated. If an Atom or Match error is generated, no prop-
- erties are changed.
-
-
- __
- | ListProperties
-
- window: WINDOW
-
- ->
-
- atoms: LISTofATOM
-
- |__ Errors: Window
-
-
- This request returns the atoms of properties currently
- defined on the window.
-
-
- __
- | SetSelectionOwner
-
- selection: ATOM
- owner: WINDOW or None
- time: TIMESTAMP or CurrentTime
-
- |__ Errors: Atom, Window
-
-
-
-
-
-
- 35
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- This request changes the owner, owner window, and last-
- change time of the specified selection. This request has no
- effect if the specified time is earlier than the current
- last-change time of the specified selection or is later than
- the current server time. Otherwise, the last-change time is
- set to the specified time with CurrentTime replaced by the
- current server time. If the owner window is specified as
- None, then the owner of the selection becomes None (that is,
- no owner). Otherwise, the owner of the selection becomes
- the client executing the request. If the new owner (whether
- a client or None) is not the same as the current owner and
- the current owner is not None, then the current owner is
- sent a SelectionClear event.
-
- If the client that is the owner of a selection is later ter-
- minated (that is, its connection is closed) or if the owner
- window it has specified in the request is later destroyed,
- then the owner of the selection automatically reverts to
- None, but the last-change time is not affected.
-
- The selection atom is uninterpreted by the server. The
- owner window is returned by the GetSelectionOwner request
- and is reported in SelectionRequest and SelectionClear
- events.
-
- Selections are global to the server.
-
-
- __
- | GetSelectionOwner
-
- selection: ATOM
-
- ->
-
- owner: WINDOW or None
-
- |__ Errors: Atom
-
-
- This request returns the current owner window of the speci-
- fied selection, if any. If None is returned, then there is
- no owner for the selection.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 36
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | ConvertSelection
-
- selection, target: ATOM
- property: ATOM or None
- requestor: WINDOW
- time: TIMESTAMP or CurrentTime
-
- |__ Errors: Atom, Window
-
-
- If the specified selection has an owner, the server sends a
- SelectionRequest event to that owner. If no owner for the
- specified selection exists, the server generates a Selec-
- tionNotify event to the requestor with property None. The
- arguments are passed on unchanged in either of the events.
-
-
- __
- | SendEvent
-
- destination: WINDOW or PointerWindow or InputFocus
- propagate: BOOL
- event-mask: SETofEVENT
- event: <normal-event-format>
-
- |__ Errors: Value, Window
-
-
- If PointerWindow is specified, destination is replaced with
- the window that the pointer is in. If InputFocus is speci-
- fied and the focus window contains the pointer, destination
- is replaced with the window that the pointer is in. Other-
- wise, destination is replaced with the focus window.
-
- If the event-mask is the empty set, then the event is sent
- to the client that created the destination window. If that
- client no longer exists, no event is sent.
-
- If propagate is False, then the event is sent to every
- client selecting on destination any of the event types in
- event-mask.
-
- If propagate is True and no clients have selected on desti-
- nation any of the event types in event-mask, then destina-
- tion is replaced with the closest ancestor of destination
- for which some client has selected a type in event-mask and
- no intervening window has that type in its do-not-propagate-
- mask. If no such window exists or if the window is an
- ancestor of the focus window and InputFocus was originally
- specified as the destination, then the event is not sent to
- any clients. Otherwise, the event is reported to every
- client selecting on the final destination any of the types
- specified in event-mask.
-
-
-
-
- 37
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- The event code must be one of the core events or one of the
- events defined by an extension (or a Value error results) so
- that the server can correctly byte-swap the contents as nec-
- essary. The contents of the event are otherwise unaltered
- and unchecked by the server except to force on the most sig-
- nificant bit of the event code and to set the sequence num-
- ber in the event correctly.
-
- Active grabs are ignored for this request.
-
-
- __
- | GrabPointer
-
- grab-window: WINDOW
- owner-events: BOOL
- event-mask: SETofPOINTEREVENT
- pointer-mode, keyboard-mode: {Synchronous, Asynchronous}
- confine-to: WINDOW or None
- cursor: CURSOR or None
- time: TIMESTAMP or CurrentTime
-
- ->
-
- status: {Success, AlreadyGrabbed, Frozen, InvalidTime,
- NotViewable}
-
- |__ Errors: Cursor, Value, Window
-
-
- This request actively grabs control of the pointer. Further
- pointer events are only reported to the grabbing client.
- The request overrides any active pointer grab by this
- client.
-
- If owner-events is False, all generated pointer events are
- reported with respect to grab-window and are only reported
- if selected by event-mask. If owner-events is True and a
- generated pointer event would normally be reported to this
- client, it is reported normally. Otherwise, the event is
- reported with respect to the grab-window and is only
- reported if selected by event-mask. For either value of
- owner-events, unreported events are simply discarded.
-
- If pointer-mode is Asynchronous, pointer event processing
- continues normally. If the pointer is currently frozen by
- this client, then processing of pointer events is resumed.
- If pointer-mode is Synchronous, the state of the pointer (as
- seen by means of the protocol) appears to freeze, and no
- further pointer events are generated by the server until the
- grabbing client issues a releasing AllowEvents request or
- until the pointer grab is released. Actual pointer changes
- are not lost while the pointer is frozen. They are simply
- queued for later processing.
-
-
-
- 38
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- If keyboard-mode is Asynchronous, keyboard event processing
- is unaffected by activation of the grab. If keyboard-mode
- is Synchronous, the state of the keyboard (as seen by means
- of the protocol) appears to freeze, and no further keyboard
- events are generated by the server until the grabbing client
- issues a releasing AllowEvents request or until the pointer
- grab is released. Actual keyboard changes are not lost
- while the keyboard is frozen. They are simply queued for
- later processing.
-
- If a cursor is specified, then it is displayed regardless of
- what window the pointer is in. If no cursor is specified,
- then when the pointer is in grab-window or one of its sub-
- windows, the normal cursor for that window is displayed.
- Otherwise, the cursor for grab-window is displayed.
-
- If a confine-to window is specified, then the pointer will
- be restricted to stay contained in that window. The con-
- fine-to window need have no relationship to the grab-window.
- If the pointer is not initially in the confine-to window,
- then it is warped automatically to the closest edge (and
- enter/leave events are generated normally) just before the
- grab activates. If the confine-to window is subsequently
- reconfigured, the pointer will be warped automatically as
- necessary to keep it contained in the window.
-
- This request generates EnterNotify and LeaveNotify events.
-
- The request fails with status AlreadyGrabbed if the pointer
- is actively grabbed by some other client. The request fails
- with status Frozen if the pointer is frozen by an active
- grab of another client. The request fails with status
- NotViewable if grab-window or confine-to window is not view-
- able or if the confine-to window lies completely outside the
- boundaries of the root window. The request fails with sta-
- tus InvalidTime if the specified time is earlier than the
- last-pointer-grab time or later than the current server
- time. Otherwise, the last-pointer-grab time is set to the
- specified time, with CurrentTime replaced by the current
- server time.
-
-
- __
- | UngrabPointer
-
- |__ time: TIMESTAMP or CurrentTime
-
-
- This request releases the pointer if this client has it
- actively grabbed (from either GrabPointer or GrabButton or
- from a normal button press) and releases any queued events.
- The request has no effect if the specified time is earlier
- than the last-pointer-grab time or is later than the current
- server time.
-
-
-
- 39
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- This request generates EnterNotify and LeaveNotify events.
-
- An UngrabPointer request is performed automatically if the
- event window or confine-to window for an active pointer grab
- becomes not viewable or if window reconfiguration causes the
- confine-to window to lie completely outside the boundaries
- of the root window.
-
-
- __
- | GrabButton
-
- modifiers: SETofKEYMASK or AnyModifier
- button: BUTTON or AnyButton
- grab-window: WINDOW
- owner-events: BOOL
- event-mask: SETofPOINTEREVENT
- pointer-mode, keyboard-mode: {Synchronous, Asynchronous}
- confine-to: WINDOW or None
- cursor: CURSOR or None
-
- |__ Errors: Access, Cursor, Value, Window
-
-
- This request establishes a passive grab. In the future, the
- pointer is actively grabbed as described in GrabPointer, the
- last-pointer-grab time is set to the time at which the but-
- ton was pressed (as transmitted in the ButtonPress event),
- and the ButtonPress event is reported if all of the follow-
- ing conditions are true:
-
- o The pointer is not grabbed and the specified button is
- logically pressed when the specified modifier keys are
- logically down, and no other buttons or modifier keys
- are logically down.
-
- o The grab-window contains the pointer.
-
- o The confine-to window (if any) is viewable.
-
- o A passive grab on the same button/key combination does
- not exist on any ancestor of grab-window.
-
- The interpretation of the remaining arguments is the same as
- for GrabPointer. The active grab is terminated automati-
- cally when the logical state of the pointer has all buttons
- released, independent of the logical state of modifier keys.
- Note that the logical state of a device (as seen by means of
- the protocol) may lag the physical state if device event
- processing is frozen.
-
- This request overrides all previous passive grabs by the
- same client on the same button/key combinations on the same
- window. A modifier of AnyModifier is equivalent to issuing
-
-
-
- 40
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- the request for all possible modifier combinations (includ-
- ing the combination of no modifiers). It is not required
- that all specified modifiers have currently assigned key-
- codes. A button of AnyButton is equivalent to issuing the
- request for all possible buttons. Otherwise, it is not
- required that the button specified currently be assigned to
- a physical button.
-
- An Access error is generated if some other client has
- already issued a GrabButton request with the same button/key
- combination on the same window. When using AnyModifier or
- AnyButton, the request fails completely (no grabs are estab-
- lished), and an Access error is generated if there is a con-
- flicting grab for any combination. The request has no
- effect on an active grab.
-
-
- __
- | UngrabButton
-
- modifiers: SETofKEYMASK or AnyModifier
- button: BUTTON or AnyButton
- grab-window: WINDOW
-
- |__ Errors: Value, Window
-
-
- This request releases the passive button/key combination on
- the specified window if it was grabbed by this client. A
- modifiers argument of AnyModifier is equivalent to issuing
- the request for all possible modifier combinations (includ-
- ing the combination of no modifiers). A button of AnyButton
- is equivalent to issuing the request for all possible but-
- tons. The request has no effect on an active grab.
-
-
- __
- | ChangeActivePointerGrab
-
- event-mask: SETofPOINTEREVENT
- cursor: CURSOR or None
- time: TIMESTAMP or CurrentTime
-
- |__ Errors: Cursor, Value
-
-
- This request changes the specified dynamic parameters if the
- pointer is actively grabbed by the client and the specified
- time is no earlier than the last-pointer-grab time and no
- later than the current server time. The interpretation of
- event-mask and cursor are the same as in GrabPointer. This
- request has no effect on the parameters of any passive grabs
- established with GrabButton.
-
-
-
-
- 41
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | GrabKeyboard
-
- grab-window: WINDOW
- owner-events: BOOL
- pointer-mode, keyboard-mode: {Synchronous, Asynchronous}
- time: TIMESTAMP or CurrentTime
-
- ->
-
- status: {Success, AlreadyGrabbed, Frozen, InvalidTime,
- NotViewable}
-
- |__ Errors: Value, Window
-
-
- This request actively grabs control of the keyboard. Fur-
- ther key events are reported only to the grabbing client.
- This request overrides any active keyboard grab by this
- client.
-
- If owner-events is False, all generated key events are
- reported with respect to grab-window. If owner-events is
- True and if a generated key event would normally be reported
- to this client, it is reported normally. Otherwise, the
- event is reported with respect to the grab-window. Both
- KeyPress and KeyRelease events are always reported, indepen-
- dent of any event selection made by the client.
-
- If keyboard-mode is Asynchronous, keyboard event processing
- continues normally. If the keyboard is currently frozen by
- this client, then processing of keyboard events is resumed.
- If keyboard-mode is Synchronous, the state of the keyboard
- (as seen by means of the protocol) appears to freeze. No
- further keyboard events are generated by the server until
- the grabbing client issues a releasing AllowEvents request
- or until the keyboard grab is released. Actual keyboard
- changes are not lost while the keyboard is frozen. They are
- simply queued for later processing.
-
- If pointer-mode is Asynchronous, pointer event processing is
- unaffected by activation of the grab. If pointer-mode is
- Synchronous, the state of the pointer (as seen by means of
- the protocol) appears to freeze. No further pointer events
- are generated by the server until the grabbing client issues
- a releasing AllowEvents request or until the keyboard grab
- is released. Actual pointer changes are not lost while the
- pointer is frozen. They are simply queued for later pro-
- cessing.
-
- This request generates FocusIn and FocusOut events.
-
- The request fails with status AlreadyGrabbed if the keyboard
- is actively grabbed by some other client. The request fails
- with status Frozen if the keyboard is frozen by an active
-
-
-
- 42
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- grab of another client. The request fails with status
- NotViewable if grab-window is not viewable. The request
- fails with status InvalidTime if the specified time is ear-
- lier than the last-keyboard-grab time or later than the cur-
- rent server time. Otherwise, the last-keyboard-grab time is
- set to the specified time with CurrentTime replaced by the
- current server time.
-
-
- __
- | UngrabKeyboard
-
- |__ time: TIMESTAMP or CurrentTime
-
-
- This request releases the keyboard if this client has it
- actively grabbed (as a result of either GrabKeyboard or
- GrabKey) and releases any queued events. The request has no
- effect if the specified time is earlier than the last-key-
- board-grab time or is later than the current server time.
-
- This request generates FocusIn and FocusOut events.
-
- An UngrabKeyboard is performed automatically if the event
- window for an active keyboard grab becomes not viewable.
-
-
- __
- | GrabKey
-
- key: KEYCODE or AnyKey
- modifiers: SETofKEYMASK or AnyModifier
- grab-window: WINDOW
- owner-events: BOOL
- pointer-mode, keyboard-mode: {Synchronous, Asynchronous}
-
- |__ Errors: Access, Value, Window
-
-
- This request establishes a passive grab on the keyboard. In
- the future, the keyboard is actively grabbed as described in
- GrabKeyboard, the last-keyboard-grab time is set to the time
- at which the key was pressed (as transmitted in the KeyPress
- event), and the KeyPress event is reported if all of the
- following conditions are true:
-
- o The keyboard is not grabbed and the specified key
- (which can itself be a modifier key) is logically
- pressed when the specified modifier keys are logically
- down, and no other modifier keys are logically down.
-
- o Either the grab-window is an ancestor of (or is) the
- focus window, or the grab-window is a descendent of the
- focus window and contains the pointer.
-
-
-
- 43
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- o A passive grab on the same key combination does not
- exist on any ancestor of grab-window.
-
- The interpretation of the remaining arguments is the same as
- for GrabKeyboard. The active grab is terminated automati-
- cally when the logical state of the keyboard has the speci-
- fied key released, independent of the logical state of modi-
- fier keys. Note that the logical state of a device (as seen
- by means of the protocol) may lag the physical state if
- device event processing is frozen.
-
- This request overrides all previous passive grabs by the
- same client on the same key combinations on the same window.
- A modifier of AnyModifier is equivalent to issuing the
- request for all possible modifier combinations (including
- the combination of no modifiers). It is not required that
- all modifiers specified have currently assigned keycodes. A
- key of AnyKey is equivalent to issuing the request for all
- possible keycodes. Otherwise, the key must be in the range
- specified by min-keycode and max-keycode in the connection
- setup (or a Value error results).
-
- An Access error is generated if some other client has issued
- a GrabKey with the same key combination on the same window.
- When using AnyModifier or AnyKey, the request fails com-
- pletely (no grabs are established), and an Access error is
- generated if there is a conflicting grab for any combina-
- tion.
-
-
- __
- | UngrabKey
-
- key: KEYCODE or AnyKey
- modifiers: SETofKEYMASK or AnyModifier
- grab-window: WINDOW
-
- |__ Errors: Value, Window
-
-
- This request releases the key combination on the specified
- window if it was grabbed by this client. A modifiers argu-
- ment of AnyModifier is equivalent to issuing the request for
- all possible modifier combinations (including the combina-
- tion of no modifiers). A key of AnyKey is equivalent to
- issuing the request for all possible keycodes. This request
- has no effect on an active grab.
-
-
-
-
-
-
-
-
-
-
- 44
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | AllowEvents
-
- mode: {AsyncPointer, SyncPointer, ReplayPointer,
- AsyncKeyboard,
- SyncKeyboard, ReplayKeyboard, AsyncBoth,
- SyncBoth}
- time: TIMESTAMP or CurrentTime
-
- |__ Errors: Value
-
-
- This request releases some queued events if the client has
- caused a device to freeze. The request has no effect if the
- specified time is earlier than the last-grab time of the
- most recent active grab for the client or if the specified
- time is later than the current server time.
-
- For AsyncPointer, if the pointer is frozen by the client,
- pointer event processing continues normally. If the pointer
- is frozen twice by the client on behalf of two separate
- grabs, AsyncPointer thaws for both. AsyncPointer has no
- effect if the pointer is not frozen by the client, but the
- pointer need not be grabbed by the client.
-
- For SyncPointer, if the pointer is frozen and actively
- grabbed by the client, pointer event processing continues
- normally until the next ButtonPress or ButtonRelease event
- is reported to the client, at which time the pointer again
- appears to freeze. However, if the reported event causes
- the pointer grab to be released, then the pointer does not
- freeze. SyncPointer has no effect if the pointer is not
- frozen by the client or if the pointer is not grabbed by the
- client.
-
- For ReplayPointer, if the pointer is actively grabbed by the
- client and is frozen as the result of an event having been
- sent to the client (either from the activation of a GrabBut-
- ton or from a previous AllowEvents with mode SyncPointer but
- not from a GrabPointer), then the pointer grab is released
- and that event is completely reprocessed, this time ignoring
- any passive grabs at or above (towards the root) the grab-
- window of the grab just released. The request has no effect
- if the pointer is not grabbed by the client or if the
- pointer is not frozen as the result of an event.
-
- For AsyncKeyboard, if the keyboard is frozen by the client,
- keyboard event processing continues normally. If the key-
- board is frozen twice by the client on behalf of two sepa-
- rate grabs, AsyncKeyboard thaws for both. AsyncKeyboard has
- no effect if the keyboard is not frozen by the client, but
- the keyboard need not be grabbed by the client.
-
- For SyncKeyboard, if the keyboard is frozen and actively
- grabbed by the client, keyboard event processing continues
-
-
-
- 45
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- normally until the next KeyPress or KeyRelease event is
- reported to the client, at which time the keyboard again
- appears to freeze. However, if the reported event causes
- the keyboard grab to be released, then the keyboard does not
- freeze. SyncKeyboard has no effect if the keyboard is not
- frozen by the client or if the keyboard is not grabbed by
- the client.
-
- For ReplayKeyboard, if the keyboard is actively grabbed by
- the client and is frozen as the result of an event having
- been sent to the client (either from the activation of a
- GrabKey or from a previous AllowEvents with mode SyncKey-
- board but not from a GrabKeyboard), then the keyboard grab
- is released and that event is completely reprocessed, this
- time ignoring any passive grabs at or above (towards the
- root) the grab-window of the grab just released. The
- request has no effect if the keyboard is not grabbed by the
- client or if the keyboard is not frozen as the result of an
- event.
-
- For SyncBoth, if both pointer and keyboard are frozen by the
- client, event processing (for both devices) continues nor-
- mally until the next ButtonPress, ButtonRelease, KeyPress,
- or KeyRelease event is reported to the client for a grabbed
- device (button event for the pointer, key event for the key-
- board), at which time the devices again appear to freeze.
- However, if the reported event causes the grab to be
- released, then the devices do not freeze (but if the other
- device is still grabbed, then a subsequent event for it will
- still cause both devices to freeze). SyncBoth has no effect
- unless both pointer and keyboard are frozen by the client.
- If the pointer or keyboard is frozen twice by the client on
- behalf of two separate grabs, SyncBoth thaws for both (but a
- subsequent freeze for SyncBoth will only freeze each device
- once).
-
- For AsyncBoth, if the pointer and the keyboard are frozen by
- the client, event processing for both devices continues nor-
- mally. If a device is frozen twice by the client on behalf
- of two separate grabs, AsyncBoth thaws for both. AsyncBoth
- has no effect unless both pointer and keyboard are frozen by
- the client.
-
- AsyncPointer, SyncPointer, and ReplayPointer have no effect
- on processing of keyboard events. AsyncKeyboard,
- SyncKeyboard, and ReplayKeyboard have no effect on process-
- ing of pointer events.
-
- It is possible for both a pointer grab and a keyboard grab
- to be active simultaneously (by the same or different
- clients). When a device is frozen on behalf of either grab,
- no event processing is performed for the device. It is pos-
- sible for a single device to be frozen because of both
- grabs. In this case, the freeze must be released on behalf
-
-
-
- 46
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- of both grabs before events can again be processed. If a
- device is frozen twice by a single client, then a single
- AllowEvents releases both.
-
-
- __
- |__ GrabServer
-
-
- This request disables processing of requests and close-downs
- on all connections other than the one this request arrived
- on.
-
-
- __
- |__ UngrabServer
-
-
- This request restarts processing of requests and close-downs
- on other connections.
-
-
- __
- | QueryPointer
-
- window: WINDOW
-
- ->
-
- root: WINDOW
- child: WINDOW or None
- same-screen: BOOL
- root-x, root-y, win-x, win-y: INT16
- mask: SETofKEYBUTMASK
-
- |__ Errors: Window
-
-
- The root window the pointer is logically on and the pointer
- coordinates relative to the root's origin are returned. If
- same-screen is False, then the pointer is not on the same
- screen as the argument window, child is None, and win-x and
- win-y are zero. If same-screen is True, then win-x and win-
- y are the pointer coordinates relative to the argument win-
- dow's origin, and child is the child containing the pointer,
- if any. The current logical state of the modifier keys and
- the buttons are also returned. Note that the logical state
- of a device (as seen by means of the protocol) may lag the
- physical state if device event processing is frozen.
-
-
-
-
-
-
-
-
- 47
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | GetMotionEvents
-
- start, stop: TIMESTAMP or CurrentTime
- window: WINDOW
-
- ->
-
- events: LISTofTIMECOORD
-
- where:
-
- TIMECOORD: [x, y: INT16
- time: TIMESTAMP]
-
-
- |__ Errors: Window
-
-
- This request returns all events in the motion history buffer
- that fall between the specified start and stop times (inclu-
- sive) and that have coordinates that lie within (including
- borders) the specified window at its present placement. The
- x and y coordinates are reported relative to the origin of
- the window.
-
- If the start time is later than the stop time or if the
- start time is in the future, no events are returned. If the
- stop time is in the future, it is equivalent to specifying
- CurrentTime.
-
-
- __
- | TranslateCoordinates
-
- src-window, dst-window: WINDOW
- src-x, src-y: INT16
-
- ->
-
- same-screen: BOOL
- child: WINDOW or None
- dst-x, dst-y: INT16
-
- |__ Errors: Window
-
-
- The src-x and src-y coordinates are taken relative to src-
- window's origin and are returned as dst-x and dst-y coordi-
- nates relative to dst-window's origin. If same-screen is
- False, then src-window and dst-window are on different
- screens, and dst-x and dst-y are zero. If the coordinates
- are contained in a mapped child of dst-window, then that
- child is returned.
-
-
-
-
- 48
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | WarpPointer
-
- src-window: WINDOW or None
- dst-window: WINDOW or None
- src-x, src-y: INT16
- src-width, src-height: CARD16
- dst-x, dst-y: INT16
-
- |__ Errors: Window
-
-
- If dst-window is None, this request moves the pointer by
- offsets [dst-x, dst-y] relative to the current position of
- the pointer. If dst-window is a window, this request moves
- the pointer to [dst-x, dst-y] relative to dst-window's ori-
- gin. However, if src-window is not None, the move only
- takes place if src-window contains the pointer and the
- pointer is contained in the specified rectangle of src-win-
- dow.
-
- The src-x and src-y coordinates are relative to src-window's
- origin. If src-height is zero, it is replaced with the cur-
- rent height of src-window minus src-y. If src-width is
- zero, it is replaced with the current width of src-window
- minus src-x.
-
- This request cannot be used to move the pointer outside the
- confine-to window of an active pointer grab. An attempt
- will only move the pointer as far as the closest edge of the
- confine-to window.
-
- This request will generate events just as if the user had
- instantaneously moved the pointer.
-
-
- __
- | SetInputFocus
-
- focus: WINDOW or PointerRoot or None
- revert-to: {Parent, PointerRoot, None}
- time: TIMESTAMP or CurrentTime
-
- |__ Errors: Match, Value, Window
-
-
- This request changes the input focus and the last-focus-
- change time. The request has no effect if the specified
- time is earlier than the current last-focus-change time or
- is later than the current server time. Otherwise, the last-
- focus-change time is set to the specified time with Current-
- Time replaced by the current server time.
-
- If None is specified as the focus, all keyboard events are
- discarded until a new focus window is set. In this case,
-
-
-
- 49
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- the revert-to argument is ignored.
-
- If a window is specified as the focus, it becomes the key-
- board's focus window. If a generated keyboard event would
- normally be reported to this window or one of its inferiors,
- the event is reported normally. Otherwise, the event is
- reported with respect to the focus window.
-
- If PointerRoot is specified as the focus, the focus window
- is dynamically taken to be the root window of whatever
- screen the pointer is on at each keyboard event. In this
- case, the revert-to argument is ignored.
-
- This request generates FocusIn and FocusOut events.
-
- The specified focus window must be viewable at the time of
- the request (or a Match error results). If the focus window
- later becomes not viewable, the new focus window depends on
- the revert-to argument. If revert-to is Parent, the focus
- reverts to the parent (or the closest viewable ancestor) and
- the new revert-to value is taken to be None. If revert-to
- is PointerRoot or None, the focus reverts to that value.
- When the focus reverts, FocusIn and FocusOut events are gen-
- erated, but the last-focus-change time is not affected.
-
-
- __
- | GetInputFocus
-
- ->
-
- focus: WINDOW or PointerRoot or None
- |__ revert-to: {Parent, PointerRoot, None}
-
-
- This request returns the current focus state.
-
-
- __
- | QueryKeymap
-
- ->
-
- |__ keys: LISTofCARD8
-
-
- This request returns a bit vector for the logical state of
- the keyboard. Each bit set to 1 indicates that the corre-
- sponding key is currently pressed. The vector is repre-
- sented as 32 bytes. Byte N (from 0) contains the bits for
- keys 8N to 8N + 7 with the least significant bit in the byte
- representing key 8N. Note that the logical state of a
- device (as seen by means of the protocol) may lag the physi-
- cal state if device event processing is frozen.
-
-
-
- 50
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | OpenFont
-
- fid: FONT
- name: STRING8
-
- |__ Errors: Alloc, IDChoice, Name
-
-
- This request loads the specified font, if necessary, and
- associates identifier fid with it. The font name should use
- the ISO Latin-1 encoding, and uppercase and lowercase do not
- matter. When the characters ``?'' and ``*'' are used in a
- font name, a pattern match is performed and any matching
- font is used. In the pattern, the ``?'' character (octal
- value 77) will match any single character, and the ``*''
- character (octal value 52) will match any number of charac-
- ters. A structured format for font names is specified in
- the X Consortium standard X Logical Font Description Conven-
- tions.
-
- Fonts are not associated with a particular screen and can be
- stored as a component of any graphics context.
-
-
- __
- | CloseFont
-
- font: FONT
-
- |__ Errors: Font
-
-
- This request deletes the association between the resource ID
- and the font. The font itself will be freed when no other
- resource references it.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 51
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | QueryFont
-
- font: FONTABLE
-
- ->
-
- font-info: FONTINFO
- char-infos: LISTofCHARINFO
-
- where:
-
-
- FONTINFO: [draw-direction: {LeftToRight, RightToLeft}
- min-char-or-byte2, max-char-or-byte2: CARD16
- min-byte1, max-byte1: CARD8
- all-chars-exist: BOOL
- default-char: CARD16
- min-bounds: CHARINFO
- max-bounds: CHARINFO
- font-ascent: INT16
- font-descent: INT16
- properties: LISTofFONTPROP]
- FONTPROP: [name: ATOM
- value: <32-bit-value>]
- CHARINFO: [left-side-bearing: INT16
- right-side-bearing: INT16
- character-width: INT16
- ascent: INT16
- descent: INT16
- attributes: CARD16]
-
-
- |__ Errors: Font
-
-
- This request returns logical information about a font. If a
- gcontext is given for font, the currently contained font is
- used.
-
- The draw-direction is just a hint and indicates whether most
- char-infos have a positive, LeftToRight, or a negative,
- RightToLeft, character-width metric. The core protocol
- defines no support for vertical text.
-
- If min-byte1 and max-byte1 are both zero, then min-char-or-
- byte2 specifies the linear character index corresponding to
- the first element of char-infos, and max-char-or-byte2 spec-
- ifies the linear character index of the last element. If
- either min-byte1 or max-byte1 are nonzero, then both min-
- char-or-byte2 and max-char-or-byte2 will be less than 256,
- and the 2-byte character index values corresponding to char-
- infos element N (counting from 0) are:
-
-
-
-
-
- 52
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- byte1 = N/D + min-byte1
- byte2 = N\\D + min-char-or-byte2
-
-
- where:
-
- D = max-char-or-byte2 - min-char-or-byte2 + 1
- / = integer division
- \\ = integer modulus
-
-
- If char-infos has length zero, then min-bounds and max-
- bounds will be identical, and the effective char-infos is
- one filled with this char-info, of length:
-
- L = D * (max-byte1 - min-byte1 + 1)
-
-
- That is, all glyphs in the specified linear or matrix range
- have the same information, as given by min-bounds (and max-
- bounds). If all-chars-exist is True, then all characters in
- char-infos have nonzero bounding boxes.
-
- The default-char specifies the character that will be used
- when an undefined or nonexistent character is used. Note
- that default-char is a CARD16, not CHAR2B. For a font using
- 2-byte matrix format, the default-char has byte1 in the most
- significant byte and byte2 in the least significant byte.
- If the default-char itself specifies an undefined or nonex-
- istent character, then no printing is performed for an unde-
- fined or nonexistent character.
-
- The min-bounds and max-bounds contain the minimum and maxi-
- mum values of each individual CHARINFO component over all
- char-infos (ignoring nonexistent characters). The bounding
- box of the font (that is, the smallest rectangle enclosing
- the shape obtained by superimposing all characters at the
- same origin [x,y]) has its upper-left coordinate at:
-
- [x + min-bounds.left-side-bearing, y - max-bounds.ascent]
-
- with a width of:
-
- max-bounds.right-side-bearing - min-bounds.left-side-bearing
-
-
- and a height of:
-
- max-bounds.ascent + max-bounds.descent
-
-
- The font-ascent is the logical extent of the font above the
- baseline and is used for determining line spacing. Specific
- characters may extend beyond this. The font-descent is the
-
-
-
- 53
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- logical extent of the font at or below the baseline and is
- used for determining line spacing. Specific characters may
- extend beyond this. If the baseline is at Y-coordinate y,
- then the logical extent of the font is inclusive between the
- Y-coordinate values (y - font-ascent) and (y + font-descent
- - 1).
-
- A font is not guaranteed to have any properties. The inter-
- pretation of the property value (for example, INT32, CARD32)
- must be derived from a priori knowledge of the property. A
- basic set of font properties is specified in the X Consor-
- tium standard X Logical Font Description Conventions.
-
- For a character origin at [x,y], the bounding box of a char-
- acter (that is, the smallest rectangle enclosing the charac-
- ter's shape), described in terms of CHARINFO components, is
- a rectangle with its upper-left corner at:
-
- [x + left-side-bearing, y - ascent]
-
-
- with a width of:
-
- right-side-bearing - left-side-bearing
-
-
- and a height of:
-
- ascent + descent
-
-
- and the origin for the next character is defined to be:
-
- [x + character-width, y]
-
-
- Note that the baseline is logically viewed as being just
- below nondescending characters (when descent is zero, only
- pixels with Y-coordinates less than y are drawn) and that
- the origin is logically viewed as being coincident with the
- left edge of a nonkerned character (when left-side-bearing
- is zero, no pixels with X-coordinate less than x are drawn).
-
- Note that CHARINFO metric values can be negative.
-
- A nonexistent character is represented with all CHARINFO
- components zero.
-
- The interpretation of the per-character attributes field is
- server-dependent.
-
-
-
-
-
-
-
- 54
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | QueryTextExtents
-
- font: FONTABLE
- string: STRING16
-
- ->
-
- draw-direction: {LeftToRight, RightToLeft}
- font-ascent: INT16
- font-descent: INT16
- overall-ascent: INT16
- overall-descent: INT16
- overall-width: INT32
- overall-left: INT32
- overall-right: INT32
-
- |__ Errors: Font
-
-
- This request returns the logical extents of the specified
- string of characters in the specified font. If a gcontext
- is given for font, the currently contained font is used.
- The draw-direction, font-ascent, and font-descent are the
- same as described in QueryFont. The overall-ascent is the
- maximum of the ascent metrics of all characters in the
- string, and the overall-descent is the maximum of the
- descent metrics. The overall-width is the sum of the char-
- acter-width metrics of all characters in the string. For
- each character in the string, let W be the sum of the char-
- acter-width metrics of all characters preceding it in the
- string, let L be the left-side-bearing metric of the charac-
- ter plus W, and let R be the right-side-bearing metric of
- the character plus W. The overall-left is the minimum L of
- all characters in the string, and the overall-right is the
- maximum R.
-
- For fonts defined with linear indexing rather than 2-byte
- matrix indexing, the server will interpret each CHAR2B as a
- 16-bit number that has been transmitted most significant
- byte first (that is, byte1 of the CHAR2B is taken as the
- most significant byte).
-
- Characters with all zero metrics are ignored. If the font
- has no defined default-char, then undefined characters in
- the string are also ignored.
-
-
-
-
-
-
-
-
-
-
-
-
- 55
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | ListFonts
-
- pattern: STRING8
- max-names: CARD16
-
- ->
-
- |__ names: LISTofSTRING8
-
-
- This request returns a list of available font names (as con-
- trolled by the font search path; see SetFontPath request)
- that match the pattern. At most, max-names names will be
- returned. The pattern should use the ISO Latin-1 encoding,
- and uppercase and lowercase do not matter. In the pattern,
- the ``?'' character (octal value 77) will match any single
- character, and the ``*'' character (octal value 52) will
- match any number of characters. The returned names are in
- lowercase.
-
-
- __
- | ListFontsWithInfo
-
- pattern: STRING8
- max-names: CARD16
-
- ->
-
- name: STRING8
- info FONTINFO
- replies-hint: CARD32
-
- where:
-
- |__ FONTINFO: <same type definition as in QueryFont>
-
-
- This request is similar to ListFonts, but it also returns
- information about each font. The information returned for
- each font is identical to what QueryFont would return except
- that the per-character metrics are not returned. Note that
- this request can generate multiple replies. With each
- reply, replies-hint may provide an indication of how many
- more fonts will be returned. This number is a hint only and
- may be larger or smaller than the number of fonts actually
- returned. A zero value does not guarantee that no more
- fonts will be returned. After the font replies, a reply
- with a zero-length name is sent to indicate the end of the
- reply sequence.
-
-
-
-
-
-
-
- 56
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | SetFontPath
-
- path: LISTofSTRING8
-
- |__ Errors: Value
-
-
- This request defines the search path for font lookup. There
- is only one search path per server, not one per client. The
- interpretation of the strings is operating-system-dependent,
- but the strings are intended to specify directories to be
- searched in the order listed.
-
- Setting the path to the empty list restores the default path
- defined for the server.
-
- As a side effect of executing this request, the server is
- guaranteed to flush all cached information about fonts for
- which there currently are no explicit resource IDs allo-
- cated.
-
- The meaning of an error from this request is system spe-
- cific.
-
-
- __
- | GetFontPath
-
- ->
-
- |__ path: LISTofSTRING8
-
-
- This request returns the current search path for fonts.
-
-
- __
- | CreatePixmap
-
- pid: PIXMAP
- drawable: DRAWABLE
- depth: CARD8
- width, height: CARD16
-
- |__ Errors: Alloc, Drawable, IDChoice, Value
-
-
- This request creates a pixmap and assigns the identifier pid
- to it. The width and height must be nonzero (or a Value
- error results). The depth must be one of the depths sup-
- ported by the root of the specified drawable (or a Value
- error results). The initial contents of the pixmap are
- undefined.
-
-
-
-
- 57
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- It is legal to pass an InputOnly window as a drawable to
- this request.
-
-
- __
- | FreePixmap
-
- pixmap: PIXMAP
-
- |__ Errors: Pixmap
-
-
- This request deletes the association between the resource ID
- and the pixmap. The pixmap storage will be freed when no
- other resource references it.
-
-
- __
- | CreateGC
-
- cid: GCONTEXT
- drawable: DRAWABLE
- value-mask: BITMASK
- value-list: LISTofVALUE
-
- Errors: Alloc, Drawable, Font, IDChoice, Match, Pixmap,
- |__ Value
-
-
- This request creates a graphics context and assigns the
- identifier cid to it. The gcontext can be used with any
- destination drawable having the same root and depth as the
- specified drawable; use with other drawables results in a
- Match error.
-
- The value-mask and value-list specify which components are
- to be explicitly initialized. The context components are:
-
- -------------------------------------------------------------
- Component Type
- -------------------------------------------------------------
- function {Clear, And, AndReverse, Copy,
- AndInverted, NoOp, Xor,
- Or, Nor, Equiv, Invert, OrReverse,
- CopyInverted,
- OrInverted, Nand, Set}
- plane-mask CARD32
- foreground CARD32
- background CARD32
- line-width CARD16
- line-style {Solid, OnOffDash, DoubleDash}
- cap-style {NotLast, Butt, Round, Projecting}
- join-style {Miter, Round, Bevel}
-
-
-
-
- 58
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -------------------------------------------------------------
- Component Type
- -------------------------------------------------------------
- fill-style {Solid, Tiled, OpaqueStippled, Stippled}
- fill-rule {EvenOdd, Winding}
- arc-mode {Chord, PieSlice}
- tile PIXMAP
- stipple PIXMAP
- tile-stipple-x- INT16
- origin
- tile-stipple-y- INT16
- origin
- font FONT
- subwindow-mode {ClipByChildren, IncludeInferiors}
- graphics-expo- BOOL
- sures
- clip-x-origin INT16
- clip-y-origin INT16
- clip-mask PIXMAP or None
- dash-offset CARD16
- dashes CARD8
- -------------------------------------------------------------
-
-
- In graphics operations, given a source and destination
- pixel, the result is computed bitwise on corresponding bits
- of the pixels; that is, a Boolean operation is performed in
- each bit plane. The plane-mask restricts the operation to a
- subset of planes, so the result is:
-
-
- ((src FUNC dst) AND plane-mask) OR (dst AND (NOT plane-mask))
-
-
- Range checking is not performed on the values for fore-
- ground, background, or plane-mask. They are simply trun-
- cated to the appropriate number of bits.
-
- The meanings of the functions are:
-
- ---------------------------------------
- Function Operation
- ---------------------------------------
- Clear 0
- And src AND dst
- AndReverse src AND (NOT dst)
- Copy src
- AndInverted (NOT src) AND dst
- NoOp dst
- Xor src XOR dst
- Or src OR dst
- Nor (NOT src) AND (NOT
- dst)
-
-
-
-
- 59
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Equiv (NOT src) XOR dst
- Invert NOT dst
- OrReverse src OR (NOT dst)
- CopyInverted NOT src
- OrInverted (NOT src) OR dst
- Nand (NOT src) OR (NOT
- dst)
- Set 1
- ---------------------------------------
-
-
- The line-width is measured in pixels and can be greater than
- or equal to one, a wide line, or the special value zero, a
- thin line.
-
- Wide lines are drawn centered on the path described by the
- graphics request. Unless otherwise specified by the join or
- cap style, the bounding box of a wide line with endpoints
- [x1, y1], [x2, y2] and width w is a rectangle with vertices
- at the following real coordinates:
-
- [x1-(w*sn/2), y1+(w*cs/2)], [x1+(w*sn/2), y1-(w*cs/2)],
- [x2-(w*sn/2), y2+(w*cs/2)], [x2+(w*sn/2), y2-(w*cs/2)]
-
-
- The sn is the sine of the angle of the line and cs is the
- cosine of the angle of the line. A pixel is part of the
- line (and hence drawn) if the center of the pixel is fully
- inside the bounding box, which is viewed as having
- infinitely thin edges. If the center of the pixel is
- exactly on the bounding box, it is part of the line if and
- only if the interior is immediately to its right (x increas-
- ing direction). Pixels with centers on a horizontal edge
- are a special case and are part of the line if and only if
- the interior or the boundary is immediately below (y
- increasing direction) and if the interior or the boundary is
- immediately to the right (x increasing direction). Note
- that this description is a mathematical model describing the
- pixels that are drawn for a wide line and does not imply
- that trigonometry is required to implement such a model.
- Real or fixed point arithmetic is recommended for computing
- the corners of the line endpoints for lines greater than one
- pixel in width.
-
- Thin lines (zero line-width) are nominally one pixel wide
- lines drawn using an unspecified, device-dependent algo-
- rithm. There are only two constraints on this algorithm.
- First, if a line is drawn unclipped from [x1,y1] to [x2,y2]
- and another line is drawn unclipped from [x1+dx,y1+dy] to
- [x2+dx,y2+dy], then a point [x,y] is touched by drawing the
- first line if and only if the point [x+dx,y+dy] is touched
- by drawing the second line. Second, the effective set of
- points comprising a line cannot be affected by clipping.
- Thus, a point is touched in a clipped line if and only if
-
-
-
- 60
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- the point lies inside the clipping region and the point
- would be touched by the line when drawn unclipped.
-
- Note that a wide line drawn from [x1,y1] to [x2,y2] always
- draws the same pixels as a wide line drawn from [x2,y2] to
- [x1,y1], not counting cap-style and join-style. Implemen-
- tors are encouraged to make this property true for thin
- lines, but it is not required. A line-width of zero may
- differ from a line-width of one in which pixels are drawn.
- In general, drawing a thin line will be faster than drawing
- a wide line of width one, but thin lines may not mix well
- aesthetically with wide lines because of the different draw-
- ing algorithms. If it is desirable to obtain precise and
- uniform results across all displays, a client should always
- use a line-width of one, rather than a line-width of zero.
-
- The line-style defines which sections of a line are drawn:
-
- Solid The full path of the line is drawn.
- DoubleDash The full path of the line is drawn, but the
- even dashes are filled differently than the odd
- dashes (see fill-style), with Butt cap-style
- used where even and odd dashes meet.
- OnOffDash Only the even dashes are drawn, and cap-style
- applies to all internal ends of the individual
- dashes (except NotLast is treated as Butt).
-
-
- The cap-style defines how the endpoints of a path are drawn:
-
- NotLast The result is equivalent to Butt, except that
- for a line-width of zero the final endpoint is
- not drawn.
- Butt The result is square at the endpoint (perpen-
- dicular to the slope of the line) with no pro-
- jection beyond.
- Round The result is a circular arc with its diameter
- equal to the line-width, centered on the end-
- point; it is equivalent to Butt for line-width
- zero.
- Projecting The result is square at the end, but the path
- continues beyond the endpoint for a distance
- equal to half the line-width; it is equivalent
- to Butt for line-width zero.
-
-
- The join-style defines how corners are drawn for wide lines:
-
- Miter The outer edges of the two lines extend to meet
- at an angle. However, if the angle is less
- than 11 degrees, a Bevel join-style is used
- instead.
-
-
-
-
-
- 61
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Round The result is a circular arc with a diameter
- equal to the line-width, centered on the join-
- point.
- Bevel The result is Butt endpoint styles, and then
- the triangular notch is filled.
-
-
- For a line with coincident endpoints (x1=x2, y1=y2), when
- the cap-style is applied to both endpoints, the semantics
- depends on the line-width and the cap-style:
-
- NotLast thin This is device-dependent, but the desired
- effect is that nothing is drawn.
- Butt thin This is device-dependent, but the desired
- effect is that a single pixel is drawn.
- Round thin This is the same as Butt/thin.
- Projecting thin This is the same as Butt/thin.
- Butt wide Nothing is drawn.
- Round wide The closed path is a circle, centered at
- the endpoint and with a diameter equal to
- the line-width.
- Projecting wide The closed path is a square, aligned with
- the coordinate axes, centered at the end-
- point and with sides equal to the line-
- width.
-
-
- For a line with coincident endpoints (x1=x2, y1=y2), when
- the join-style is applied at one or both endpoints, the
- effect is as if the line was removed from the overall path.
- However, if the total path consists of (or is reduced to) a
- single point joined with itself, the effect is the same as
- when the cap-style is applied at both endpoints.
-
- The tile/stipple represents an infinite two-dimensional
- plane with the tile/stipple replicated in all dimensions.
- When that plane is superimposed on the drawable for use in a
- graphics operation, the upper-left corner of some instance
- of the tile/stipple is at the coordinates within the draw-
- able specified by the tile/stipple origin. The tile/stipple
- and clip origins are interpreted relative to the origin of
- whatever destination drawable is specified in a graphics
- request.
-
- The tile pixmap must have the same root and depth as the
- gcontext (or a Match error results). The stipple pixmap
- must have depth one and must have the same root as the gcon-
- text (or a Match error results). For fill-style Stippled
- (but not fill-style OpaqueStippled), the stipple pattern is
- tiled in a single plane and acts as an additional clip mask
- to be ANDed with the clip-mask. Any size pixmap can be used
- for tiling or stippling, although some sizes may be faster
- to use than others.
-
-
-
-
- 62
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- The fill-style defines the contents of the source for line,
- text, and fill requests. For all text and fill requests
- (for example, PolyText8, PolyText16, PolyFillRectangle,
- FillPoly, and PolyFillArc) as well as for line requests with
- line-style Solid, (for example, PolyLine, PolySegment,
- PolyRectangle, PolyArc) and for the even dashes for line
- requests with line-style OnOffDash or DoubleDash:
-
- Solid Foreground
- Tiled Tile
- OpaqueStip- A tile with the same width and height as
- pled stipple but with background everywhere stip-
- ple has a zero and with foreground everywhere
- stipple has a one
- Stippled Foreground masked by stipple
-
-
- For the odd dashes for line requests with line-style
- DoubleDash:
-
- Solid Background
- Tiled Same as for even dashes
- OpaqueStip- Same as for even dashes
- pled
- Stippled Background masked by stipple
-
-
- The dashes value allowed here is actually a simplified form
- of the more general patterns that can be set with SetDashes.
- Specifying a value of N here is equivalent to specifying the
- two element list [N, N] in SetDashes. The value must be
- nonzero (or a Value error results). The meaning of dash-
- offset and dashes are explained in the SetDashes request.
-
- The clip-mask restricts writes to the destination drawable.
- Only pixels where the clip-mask has bits set to 1 are drawn.
- Pixels are not drawn outside the area covered by the clip-
- mask or where the clip-mask has bits set to 0. The clip-
- mask affects all graphics requests, but it does not clip
- sources. The clip-mask origin is interpreted relative to
- the origin of whatever destination drawable is specified in
- a graphics request. If a pixmap is specified as the clip-
- mask, it must have depth 1 and have the same root as the
- gcontext (or a Match error results). If clip-mask is None,
- then pixels are always drawn, regardless of the clip origin.
- The clip-mask can also be set with the SetClipRectangles
- request.
-
- For ClipByChildren, both source and destination windows are
- additionally clipped by all viewable InputOutput children.
- For IncludeInferiors, neither source nor destination window
- is clipped by inferiors. This will result in including sub-
- window contents in the source and drawing through subwindow
- boundaries of the destination. The use of IncludeInferiors
-
-
-
- 63
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- with a source or destination window of one depth with mapped
- inferiors of differing depth is not illegal, but the seman-
- tics is undefined by the core protocol.
-
- The fill-rule defines what pixels are inside (that is, are
- drawn) for paths given in FillPoly requests. EvenOdd means
- a point is inside if an infinite ray with the point as ori-
- gin crosses the path an odd number of times. For Winding, a
- point is inside if an infinite ray with the point as origin
- crosses an unequal number of clockwise and counterclockwise
- directed path segments. A clockwise directed path segment
- is one that crosses the ray from left to right as observed
- from the point. A counter-clockwise segment is one that
- crosses the ray from right to left as observed from the
- point. The case where a directed line segment is coincident
- with the ray is uninteresting because one can simply choose
- a different ray that is not coincident with a segment.
-
- For both fill rules, a point is infinitely small and the
- path is an infinitely thin line. A pixel is inside if the
- center point of the pixel is inside and the center point is
- not on the boundary. If the center point is on the bound-
- ary, the pixel is inside if and only if the polygon interior
- is immediately to its right (x increasing direction). Pix-
- els with centers along a horizontal edge are a special case
- and are inside if and only if the polygon interior is imme-
- diately below (y increasing direction).
-
- The arc-mode controls filling in the PolyFillArc request.
-
- The graphics-exposures flag controls GraphicsExposure event
- generation for CopyArea and CopyPlane requests (and any sim-
- ilar requests defined by extensions).
-
- The default component values are:
-
- ---------------------------------------------------------------
- Component Default
- ---------------------------------------------------------------
- function Copy
- plane-mask all ones
- foreground 0
- background 1
- line-width 0
- line-style Solid
- cap-style Butt
- join-style Miter
- fill-style Solid
- fill-rule EvenOdd
- arc-mode PieSlice
-
-
-
-
-
-
-
- 64
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- ---------------------------------------------------------------
- Component Default
- ---------------------------------------------------------------
- tile Pixmap of unspecified size filled with
- foreground pixel
- (that is, client specified pixel if any,
- else 0)
- (subsequent changes to foreground do not
- affect this pixmap)
- stipple Pixmap of unspecified size filled with
- ones
- tile-stipple-x-ori- 0
- gin
- tile-stipple-y-ori- 0
- gin
- font <server-dependent-font>
- subwindow-mode ClipByChildren
- graphics-exposures True
- clip-x-origin 0
- clip-y-origin 0
- clip-mask None
- dash-offset 0
- dashes 4 (that is, the list [4, 4])
- ---------------------------------------------------------------
-
-
- Storing a pixmap in a gcontext might or might not result in
- a copy being made. If the pixmap is later used as the des-
- tination for a graphics request, the change might or might
- not be reflected in the gcontext. If the pixmap is used
- simultaneously in a graphics request as both a destination
- and as a tile or stipple, the results are not defined.
-
- It is quite likely that some amount of gcontext information
- will be cached in display hardware and that such hardware
- can only cache a small number of gcontexts. Given the num-
- ber and complexity of components, clients should view
- switching between gcontexts with nearly identical state as
- significantly more expensive than making minor changes to a
- single gcontext.
-
-
- __
- | ChangeGC
-
- gc: GCONTEXT
- value-mask: BITMASK
- value-list: LISTofVALUE
-
- |__ Errors: Alloc, Font, GContext, Match, Pixmap, Value
-
-
- This request changes components in gc. The value-mask and
- value-list specify which components are to be changed. The
-
-
-
- 65
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- values and restrictions are the same as for CreateGC.
-
- Changing the clip-mask also overrides any previous Set-
- ClipRectangles request on the context. Changing dash-offset
- or dashes overrides any previous SetDashes request on the
- context.
-
- The order in which components are verified and altered is
- server-dependent. If an error is generated, a subset of the
- components may have been altered.
-
-
- __
- | CopyGC
-
- src-gc, dst-gc: GCONTEXT
- value-mask: BITMASK
-
- |__ Errors: Alloc, GContext, Match, Value
-
-
- This request copies components from src-gc to dst-gc. The
- value-mask specifies which components to copy, as for
- CreateGC. The two gcontexts must have the same root and the
- same depth (or a Match error results).
-
-
- __
- | SetDashes
-
- gc: GCONTEXT
- dash-offset: CARD16
- dashes: LISTofCARD8
-
- |__ Errors: Alloc, GContext, Value
-
-
- This request sets dash-offset and dashes in gc for dashed
- line styles. Dashes cannot be empty (or a Value error
- results). Specifying an odd-length list is equivalent to
- specifying the same list concatenated with itself to produce
- an even-length list. The initial and alternating elements
- of dashes are the even dashes; the others are the odd
- dashes. Each element specifies a dash length in pixels.
- All of the elements must be nonzero (or a Value error
- results). The dash-offset defines the phase of the pattern,
- specifying how many pixels into dashes the pattern should
- actually begin in any single graphics request. Dashing is
- continuous through path elements combined with a join-style
- but is reset to the dash-offset between each sequence of
- joined lines.
-
- The unit of measure for dashes is the same as in the ordi-
- nary coordinate system. Ideally, a dash length is measured
-
-
-
- 66
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- along the slope of the line, but implementations are only
- required to match this ideal for horizontal and vertical
- lines. Failing the ideal semantics, it is suggested that
- the length be measured along the major axis of the line.
- The major axis is defined as the x axis for lines drawn at
- an angle of between -45 and +45 degrees or between 135 and
- 225 degrees from the x axis. For all other lines, the major
- axis is the y axis.
-
- For any graphics primitive, the computation of the endpoint
- of an individual dash only depends on the geometry of the
- primitive, the start position of the dash, the direction of
- the dash, and the dash length.
-
- For any graphics primitive, the total set of pixels used to
- render the primitive (both even and odd numbered dash ele-
- ments) with DoubleDash line-style is the same as the set of
- pixels used to render the primitive with Solid line-style.
-
- For any graphics primitive, if the primitive is drawn with
- OnOffDash or DoubleDash line-style unclipped at position
- [x,y] and again at position [x+dx,y+dy], then a point
- [x1,y1] is included in a dash in the first instance if and
- only if the point [x1+dx,y1+dy] is included in the dash in
- the second instance. In addition, the effective set of
- points comprising a dash cannot be affected by clipping. A
- point is included in a clipped dash if and only if the point
- lies inside the clipping region and the point would be
- included in the dash when drawn unclipped.
-
-
- __
- | SetClipRectangles
-
- gc: GCONTEXT
- clip-x-origin, clip-y-origin: INT16
- rectangles: LISTofRECTANGLE
- ordering: {UnSorted, YSorted, YXSorted, YXBanded}
-
- |__ Errors: Alloc, GContext, Match, Value
-
-
- This request changes clip-mask in gc to the specified list
- of rectangles and sets the clip origin. Output will be
- clipped to remain contained within the rectangles. The clip
- origin is interpreted relative to the origin of whatever
- destination drawable is specified in a graphics request.
- The rectangle coordinates are interpreted relative to the
- clip origin. The rectangles should be nonintersecting, or
- graphics results will be undefined. Note that the list of
- rectangles can be empty, which effectively disables output.
- This is the opposite of passing None as the clip-mask in
- CreateGC and ChangeGC.
-
-
-
-
- 67
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- If known by the client, ordering relations on the rectangles
- can be specified with the ordering argument. This may pro-
- vide faster operation by the server. If an incorrect order-
- ing is specified, the server may generate a Match error, but
- it is not required to do so. If no error is generated, the
- graphics results are undefined. UnSorted means that the
- rectangles are in arbitrary order. YSorted means that the
- rectangles are nondecreasing in their Y origin. YXSorted
- additionally constrains YSorted order in that all rectangles
- with an equal Y origin are nondecreasing in their X origin.
- YXBanded additionally constrains YXSorted by requiring that,
- for every possible Y scanline, all rectangles that include
- that scanline have identical Y origins and Y extents.
-
-
- __
- | FreeGC
-
- gc: GCONTEXT
-
- |__ Errors: GContext
-
-
- This request deletes the association between the resource ID
- and the gcontext and destroys the gcontext.
-
-
- __
- | ClearArea
-
- window: WINDOW
- x, y: INT16
- width, height: CARD16
- exposures: BOOL
-
- |__ Errors: Match, Value, Window
-
-
- The x and y coordinates are relative to the window's origin
- and specify the upper-left corner of the rectangle. If
- width is zero, it is replaced with the current width of the
- window minus x. If height is zero, it is replaced with the
- current height of the window minus y. If the window has a
- defined background tile, the rectangle is tiled with a
- plane-mask of all ones and function of Copy and a subwindow-
- mode of ClipByChildren. If the window has background None,
- the contents of the window are not changed. In either case,
- if exposures is True, then one or more exposure events are
- generated for regions of the rectangle that are either visi-
- ble or are being retained in a backing store.
-
- It is a Match error to use an InputOnly window in this
- request.
-
-
-
-
- 68
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | CopyArea
-
- src-drawable, dst-drawable: DRAWABLE
- gc: GCONTEXT
- src-x, src-y: INT16
- width, height: CARD16
- dst-x, dst-y: INT16
-
- |__ Errors: Drawable, GContext, Match
-
-
- This request combines the specified rectangle of src-draw-
- able with the specified rectangle of dst-drawable. The src-
- x and src-y coordinates are relative to src-drawable's ori-
- gin. The dst-x and dst-y are relative to dst-drawable's
- origin, each pair specifying the upper-left corner of the
- rectangle. The src-drawable must have the same root and the
- same depth as dst-drawable (or a Match error results).
-
- If regions of the source rectangle are obscured and have not
- been retained in backing store or if regions outside the
- boundaries of the source drawable are specified, then those
- regions are not copied, but the following occurs on all cor-
- responding destination regions that are either visible or
- are retained in backing-store. If the dst-drawable is a
- window with a background other than None, these correspond-
- ing destination regions are tiled (with plane-mask of all
- ones and function Copy) with that background. Regardless of
- tiling and whether the destination is a window or a pixmap,
- if graphics-exposures in gc is True, then GraphicsExposure
- events for all corresponding destination regions are gener-
- ated.
-
- If graphics-exposures is True but no GraphicsExposure events
- are generated, then a NoExposure event is generated.
-
- GC components: function, plane-mask, subwindow-mode, graph-
- ics-exposures, clip-x-origin, clip-y-origin, clip-mask
-
-
- __
- | CopyPlane
-
- src-drawable, dst-drawable: DRAWABLE
- gc: GCONTEXT
- src-x, src-y: INT16
- width, height: CARD16
- dst-x, dst-y: INT16
- bit-plane: CARD32
-
- |__ Errors: Drawable, GContext, Match, Value
-
-
-
-
-
-
- 69
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- The src-drawable must have the same root as dst-drawable (or
- a Match error results), but it need not have the same depth.
- The bit-plane must have exactly one bit set to 1 and the
- value of bit-plane must be less than 2n where n is the depth
- of src-drawable (or a Value error results). Effectively, a
- pixmap of the same depth as dst-drawable and with size spec-
- ified by the source region is formed using the fore-
- ground/background pixels in gc (foreground everywhere the
- bit-plane in src-drawable contains a bit set to 1, back-
- ground everywhere the bit-plane contains a bit set to 0),
- and the equivalent of a CopyArea is performed, with all the
- same exposure semantics. This can also be thought of as
- using the specified region of the source bit-plane as a
- stipple with a fill-style of OpaqueStippled for filling a
- rectangular area of the destination.
-
- GC components: function, plane-mask, foreground, background,
- subwindow-mode, graphics-exposures, clip-x-origin, clip-y-
- origin, clip-mask
-
-
- __
- | PolyPoint
-
- drawable: DRAWABLE
- gc: GCONTEXT
- coordinate-mode: {Origin, Previous}
- points: LISTofPOINT
-
- |__ Errors: Drawable, GContext, Match, Value
-
-
- This request combines the foreground pixel in gc with the
- pixel at each point in the drawable. The points are drawn
- in the order listed.
-
- The first point is always relative to the drawable's origin.
- The rest are relative either to that origin or the previous
- point, depending on the coordinate-mode.
-
- GC components: function, plane-mask, foreground, subwindow-
- mode, clip-x-origin, clip-y-origin, clip-mask
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 70
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | PolyLine
-
- drawable: DRAWABLE
- gc: GCONTEXT
- coordinate-mode: {Origin, Previous}
- points: LISTofPOINT
-
- |__ Errors: Drawable, GContext, Match, Value
-
-
- This request draws lines between each pair of points
- (point[i], point[i+1]). The lines are drawn in the order
- listed. The lines join correctly at all intermediate
- points, and if the first and last points coincide, the first
- and last lines also join correctly.
-
- For any given line, no pixel is drawn more than once. If
- thin (zero line-width) lines intersect, the intersecting
- pixels are drawn multiple times. If wide lines intersect,
- the intersecting pixels are drawn only once, as though the
- entire PolyLine were a single filled shape.
-
- The first point is always relative to the drawable's origin.
- The rest are relative either to that origin or the previous
- point, depending on the coordinate-mode.
-
- When either of the two lines involved in a Bevel join is
- neither vertical nor horizontal, then the slope and position
- of the line segment defining the bevel join edge is imple-
- mentation dependent. However, the computation of the slope
- and distance (relative to the join point) only depends on
- the line width and the slopes of the two lines.
-
- GC components: function, plane-mask, line-width, line-style,
- cap-style, join-style, fill-style, subwindow-mode, clip-x-
- origin, clip-y-origin, clip-mask
-
- GC mode-dependent components: foreground, background, tile,
- stipple, tile-stipple-x-origin, tile-stipple-y-origin, dash-
- offset, dashes
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 71
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | PolySegment
-
- drawable: DRAWABLE
- gc: GCONTEXT
- segments: LISTofSEGMENT
-
- where:
-
- SEGMENT: [x1, y1, x2, y2: INT16]
-
- |__ Errors: Drawable, GContext, Match
-
-
- For each segment, this request draws a line between [x1, y1]
- and [x2, y2]. The lines are drawn in the order listed. No
- joining is performed at coincident endpoints. For any given
- line, no pixel is drawn more than once. If lines intersect,
- the intersecting pixels are drawn multiple times.
-
- GC components: function, plane-mask, line-width, line-style,
- cap-style, fill-style, subwindow-mode, clip-x-origin, clip-
- y-origin, clip-mask
-
- GC mode-dependent components: foreground, background, tile,
- stipple, tile-stipple-x-origin, tile-stipple-y-origin, dash-
- offset, dashes
-
-
- __
- | PolyRectangle
-
- drawable: DRAWABLE
- gc: GCONTEXT
- rectangles: LISTofRECTANGLE
-
- |__ Errors: Drawable, GContext, Match
-
-
- This request draws the outlines of the specified rectangles,
- as if a five-point PolyLine were specified for each rectan-
- gle:
-
-
- [x,y] [x+width,y] [x+width,y+height] [x,y+height] [x,y]
-
-
- The x and y coordinates of each rectangle are relative to
- the drawable's origin and define the upper-left corner of
- the rectangle.
-
- The rectangles are drawn in the order listed. For any given
- rectangle, no pixel is drawn more than once. If rectangles
- intersect, the intersecting pixels are drawn multiple times.
-
-
-
-
- 72
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- GC components: function, plane-mask, line-width, line-style,
- cap-style, join-style, fill-style, subwindow-mode, clip-x-
- origin, clip-y-origin, clip-mask
-
- GC mode-dependent components: foreground, background, tile,
- stipple, tile-stipple-x-origin, tile-stipple-y-origin, dash-
- offset, dashes
-
-
- __
- | PolyArc
-
- drawable: DRAWABLE
- gc: GCONTEXT
- arcs: LISTofARC
-
- |__ Errors: Drawable, GContext, Match
-
-
- This request draws circular or elliptical arcs. Each arc is
- specified by a rectangle and two angles. The angles are
- signed integers in degrees scaled by 64, with positive indi-
- cating counterclockwise motion and negative indicating
- clockwise motion. The start of the arc is specified by
- angle1 relative to the three-o'clock position from the cen-
- ter of the rectangle, and the path and extent of the arc is
- specified by angle2 relative to the start of the arc. If
- the magnitude of angle2 is greater than 360 degrees, it is
- truncated to 360 degrees. The x and y coordinates of the
- rectangle are relative to the origin of the drawable. For
- an arc specified as [x,y,w,h,a1,a2], the origin of the major
- and minor axes is at [x+(w/2),y+(h/2)], and the infinitely
- thin path describing the entire circle/ellipse intersects
- the horizontal axis at [x,y+(h/2)] and [x+w,y+(h/2)] and
- intersects the vertical axis at [x+(w/2),y] and
- [x+(w/2),y+h]. These coordinates are not necessarily inte-
- gral; that is, they are not truncated to discrete coordi-
- nates.
-
- For a wide line with line-width lw, the ideal bounding out-
- lines for filling are given by the two infinitely thin paths
- consisting of all points whose perpendicular distance from a
- tangent to the path of the circle/ellipse is equal to lw/2
- (which may be a fractional value). When the width and
- height of the arc are not equal and both are nonzero, then
- the actual bounding outlines are implementation dependent.
- However, the computation of the shape and position of the
- bounding outlines (relative to the center of the arc) only
- depends on the width and height of the arc and the line-
- width.
-
- The cap-style is applied the same as for a line correspond-
- ing to the tangent of the circle/ellipse at the endpoint.
- When the angle of an arc face is not an integral multiple of
-
-
-
- 73
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 90 degrees, and the width and height of the arc are both are
- nonzero, then the shape and position of the cap at that face
- is implementation dependent. However, for a Butt cap, the
- face is defined by a straight line, and the computation of
- the position (relative to the center of the arc) and the
- slope of the line only depends on the width and height of
- the arc and the angle of the arc face. For other cap
- styles, the computation of the position (relative to the
- center of the arc) and the shape of the cap only depends on
- the width and height of the arc, the line-width, the angle
- of the arc face, and the direction (clockwise or counter
- clockwise) of the arc from the endpoint.
-
- The join-style is applied the same as for two lines corre-
- sponding to the tangents of the circles/ellipses at the join
- point. When the width and height of both arcs are nonzero,
- and the angle of either arc face is not an integral multiple
- of 90 degrees, then the shape of the join is implementation
- dependent. However, the computation of the shape only
- depends on the width and height of each arc, the line-width,
- the angles of the two arc faces, the direction (clockwise or
- counter clockwise) of the arcs from the join point, and the
- relative orientation of the two arc center points.
-
- For an arc specified as [x,y,w,h,a1,a2], the angles must be
- specified in the effectively skewed coordinate system of the
- ellipse (for a circle, the angles and coordinate systems are
- identical). The relationship between these angles and
- angles expressed in the normal coordinate system of the
- screen (as measured with a protractor) is as follows:
-
- skewed-angle = atan(tan(normal-angle) * w/h) + adjust
-
-
- The skewed-angle and normal-angle are expressed in radians
- (rather than in degrees scaled by 64) in the range [0,2*PI).
- The atan returns a value in the range [-PI/2,PI/2]. The
- adjust is:
-
- 0 for normal-angle in the range [0,PI/2)
- PI for normal-angle in the range [PI/2,(3*PI)/2)
- 2*PI for normal-angle in the range [(3*PI)/2,2*PI)
-
-
- The arcs are drawn in the order listed. If the last point
- in one arc coincides with the first point in the following
- arc, the two arcs will join correctly. If the first point
- in the first arc coincides with the last point in the last
- arc, the two arcs will join correctly. For any given arc,
- no pixel is drawn more than once. If two arcs join cor-
- rectly and the line-width is greater than zero and the arcs
- intersect, no pixel is drawn more than once. Otherwise, the
- intersecting pixels of intersecting arcs are drawn multiple
- times. Specifying an arc with one endpoint and a clockwise
-
-
-
- 74
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- extent draws the same pixels as specifying the other end-
- point and an equivalent counterclockwise extent, except as
- it affects joins.
-
- By specifying one axis to be zero, a horizontal or vertical
- line can be drawn.
-
- Angles are computed based solely on the coordinate system,
- ignoring the aspect ratio.
-
- GC components: function, plane-mask, line-width, line-style,
- cap-style, join-style, fill-style, subwindow-mode, clip-x-
- origin, clip-y-origin, clip-mask
-
- GC mode-dependent components: foreground, background, tile,
- stipple, tile-stipple-x-origin, tile-stipple-y-origin, dash-
- offset, dashes
-
-
- __
- | FillPoly
-
- drawable: DRAWABLE
- gc: GCONTEXT
- shape: {Complex, Nonconvex, Convex}
- coordinate-mode: {Origin, Previous}
- points: LISTofPOINT
-
- |__ Errors: Drawable, GContext, Match, Value
-
-
- This request fills the region closed by the specified path.
- The path is closed automatically if the last point in the
- list does not coincide with the first point. No pixel of
- the region is drawn more than once.
-
- The first point is always relative to the drawable's origin.
- The rest are relative either to that origin or the previous
- point, depending on the coordinate-mode.
-
- The shape parameter may be used by the server to improve
- performance. Complex means the path may self-intersect.
- Contiguous coincident points in the path are not treated as
- self-intersection.
-
- Nonconvex means the path does not self-intersect, but the
- shape is not wholly convex. If known by the client, speci-
- fying Nonconvex over Complex may improve performance. If
- Nonconvex is specified for a self-intersecting path, the
- graphics results are undefined.
-
- Convex means that for every pair of points inside the poly-
- gon, the line segment connecting them does not intersect the
- path. If known by the client, specifying Convex can improve
-
-
-
- 75
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- performance. If Convex is specified for a path that is not
- convex, the graphics results are undefined.
-
- GC components: function, plane-mask, fill-style, fill-rule,
- subwindow-mode, clip-x-origin, clip-y-origin, clip-mask
-
- GC mode-dependent components: foreground, background, tile,
- stipple, tile-stipple-x-origin, tile-stipple-y-origin
-
-
- __
- | PolyFillRectangle
-
- drawable: DRAWABLE
- gc: GCONTEXT
- rectangles: LISTofRECTANGLE
-
- |__ Errors: Drawable, GContext, Match
-
-
- This request fills the specified rectangles, as if a four-
- point FillPoly were specified for each rectangle:
-
- [x,y] [x+width,y] [x+width,y+height] [x,y+height]
-
-
- The x and y coordinates of each rectangle are relative to
- the drawable's origin and define the upper-left corner of
- the rectangle.
-
- The rectangles are drawn in the order listed. For any given
- rectangle, no pixel is drawn more than once. If rectangles
- intersect, the intersecting pixels are drawn multiple times.
-
- GC components: function, plane-mask, fill-style, subwindow-
- mode, clip-x-origin, clip-y-origin, clip-mask
-
- GC mode-dependent components: foreground, background, tile,
- stipple, tile-stipple-x-origin, tile-stipple-y-origin
-
-
- __
- | PolyFillArc
-
- drawable: DRAWABLE
- gc: GCONTEXT
- arcs: LISTofARC
-
- |__ Errors: Drawable, GContext, Match
-
-
- For each arc, this request fills the region closed by the
- infinitely thin path described by the specified arc and one
- or two line segments, depending on the arc-mode. For Chord,
-
-
-
- 76
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- the single line segment joining the endpoints of the arc is
- used. For PieSlice, the two line segments joining the end-
- points of the arc with the center point are used.
-
- For an arc specified as [x,y,w,h,a1,a2], the origin of the
- major and minor axes is at [x+(w/2),y+(h/2)], and the
- infinitely thin path describing the entire circle/ellipse
- intersects the horizontal axis at [x,y+(h/2)] and
- [x+w,y+(h/2)] and intersects the vertical axis at
- [x+(w/2),y] and [x+(w/2),y+h]. These coordinates are not
- necessarily integral; that is, they are not truncated to
- discrete coordinates.
-
- The arc angles are interpreted as specified in the PolyArc
- request. When the angle of an arc face is not an integral
- multiple of 90 degrees, then the precise endpoint on the arc
- is implementation dependent. However, for Chord arc-mode,
- the computation of the pair of endpoints (relative to the
- center of the arc) only depends on the width and height of
- the arc and the angles of the two arc faces. For PieSlice
- arc-mode, the computation of an endpoint only depends on the
- angle of the arc face for that endpoint and the ratio of the
- arc width to arc height.
-
- The arcs are filled in the order listed. For any given arc,
- no pixel is drawn more than once. If regions intersect, the
- intersecting pixels are drawn multiple times.
-
- GC components: function, plane-mask, fill-style, arc-mode,
- subwindow-mode, clip-x-origin, clip-y-origin, clip-mask
-
- GC mode-dependent components: foreground, background, tile,
- stipple, tile-stipple-x-origin, tile-stipple-y-origin
-
-
- __
- | PutImage
-
- drawable: DRAWABLE
- gc: GCONTEXT
- depth: CARD8
- width, height: CARD16
- dst-x, dst-y: INT16
- left-pad: CARD8
- format: {Bitmap, XYPixmap, ZPixmap}
- data: LISTofBYTE
-
- |__ Errors: Drawable, GContext, Match, Value
-
-
- This request combines an image with a rectangle of the draw-
- able. The dst-x and dst-y coordinates are relative to the
- drawable's origin.
-
-
-
-
- 77
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- If Bitmap format is used, then depth must be one (or a Match
- error results), and the image must be in XY format. The
- foreground pixel in gc defines the source for bits set to 1
- in the image, and the background pixel defines the source
- for the bits set to 0.
-
- For XYPixmap and ZPixmap, the depth must match the depth of
- the drawable (or a Match error results). For XYPixmap, the
- image must be sent in XY format. For ZPixmap, the image
- must be sent in the Z format defined for the given depth.
-
- The left-pad must be zero for ZPixmap format (or a Match
- error results). For Bitmap and XYPixmap format, left-pad
- must be less than bitmap-scanline-pad as given in the server
- connection setup information (or a Match error results).
- The first left-pad bits in every scanline are to be ignored
- by the server. The actual image begins that many bits into
- the data. The width argument defines the width of the
- actual image and does not include left-pad.
-
- GC components: function, plane-mask, subwindow-mode, clip-x-
- origin, clip-y-origin, clip-mask
-
- GC mode-dependent components: foreground, background
-
-
- __
- | GetImage
-
- drawable: DRAWABLE
- x, y: INT16
- width, height: CARD16
- plane-mask: CARD32
- format: {XYPixmap, ZPixmap}
-
- ->
-
- depth: CARD8
- visual: VISUALID or None
- data: LISTofBYTE
-
- |__ Errors: Drawable, Match, Value
-
-
- This request returns the contents of the given rectangle of
- the drawable in the given format. The x and y coordinates
- are relative to the drawable's origin and define the upper-
- left corner of the rectangle. If XYPixmap is specified,
- only the bit planes specified in plane-mask are transmitted,
- with the planes appearing from most significant to least
- significant in bit order. If ZPixmap is specified, then
- bits in all planes not specified in plane-mask are transmit-
- ted as zero. Range checking is not performed on plane-mask;
- extraneous bits are simply ignored. The returned depth is
-
-
-
- 78
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- as specified when the drawable was created and is the same
- as a depth component in a FORMAT structure (in the connec-
- tion setup), not a bits-per-pixel component. If the draw-
- able is a window, its visual type is returned. If the draw-
- able is a pixmap, the visual is None.
-
- If the drawable is a pixmap, then the given rectangle must
- be wholly contained within the pixmap (or a Match error
- results). If the drawable is a window, the window must be
- viewable, and it must be the case that, if there were no
- inferiors or overlapping windows, the specified rectangle of
- the window would be fully visible on the screen and wholly
- contained within the outside edges of the window (or a Match
- error results). Note that the borders of the window can be
- included and read with this request. If the window has a
- backing store, then the backing-store contents are returned
- for regions of the window that are obscured by noninferior
- windows; otherwise, the returned contents of such obscured
- regions are undefined. Also undefined are the returned con-
- tents of visible regions of inferiors of different depth
- than the specified window. The pointer cursor image is not
- included in the contents returned.
-
- This request is not general-purpose in the same sense as
- other graphics-related requests. It is intended specifi-
- cally for rudimentary hardcopy support.
-
-
- __
- | PolyText8
-
- drawable: DRAWABLE
- gc: GCONTEXT
- x, y: INT16
- items: LISTofTEXTITEM8
-
- where:
-
- TEXTITEM8: TEXTELT8 or FONT
- TEXTELT8: [delta: INT8
- string: STRING8]
-
-
- |__ Errors: Drawable, Font, GContext, Match
-
-
- The x and y coordinates are relative to the drawable's ori-
- gin and specify the baseline starting position (the initial
- character origin). Each text item is processed in turn. A
- font item causes the font to be stored in gc and to be used
- for subsequent text. Switching among fonts does not affect
- the next character origin. A text element delta specifies
- an additional change in the position along the x axis before
- the string is drawn; the delta is always added to the
-
-
-
- 79
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- character origin. Each character image, as defined by the
- font in gc, is treated as an additional mask for a fill
- operation on the drawable.
-
- All contained FONTs are always transmitted most significant
- byte first.
-
- If a Font error is generated for an item, the previous items
- may have been drawn.
-
- For fonts defined with 2-byte matrix indexing, each STRING8
- byte is interpreted as a byte2 value of a CHAR2B with a
- byte1 value of zero.
-
- GC components: function, plane-mask, fill-style, font, sub-
- window-mode, clip-x-origin, clip-y-origin, clip-mask
-
- GC mode-dependent components: foreground, background, tile,
- stipple, tile-stipple-x-origin, tile-stipple-y-origin
-
-
- __
- | PolyText16
-
- drawable: DRAWABLE
- gc: GCONTEXT
- x, y: INT16
- items: LISTofTEXTITEM16
-
- where:
-
- TEXTITEM16: TEXTELT16 or FONT
- TEXTELT16: [delta: INT8
- string: STRING16]
-
-
- |__ Errors: Drawable, Font, GContext, Match
-
-
- This request is similar to PolyText8, except 2-byte (or
- 16-bit) characters are used. For fonts defined with linear
- indexing rather than 2-byte matrix indexing, the server will
- interpret each CHAR2B as a 16-bit number that has been
- transmitted most significant byte first (that is, byte1 of
- the CHAR2B is taken as the most significant byte).
-
-
-
-
-
-
-
-
-
-
-
-
- 80
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | ImageText8
-
- drawable: DRAWABLE
- gc: GCONTEXT
- x, y: INT16
- string: STRING8
-
- |__ Errors: Drawable, GContext, Match
-
-
- The x and y coordinates are relative to the drawable's ori-
- gin and specify the baseline starting position (the initial
- character origin). The effect is first to fill a destina-
- tion rectangle with the background pixel defined in gc and
- then to paint the text with the foreground pixel. The
- upper-left corner of the filled rectangle is at:
-
- [x, y - font-ascent]
-
-
- the width is:
-
- overall-width
-
-
- and the height is:
-
- font-ascent + font-descent
-
-
- The overall-width, font-ascent, and font-descent are as they
- would be returned by a QueryTextExtents call using gc and
- string.
-
- The function and fill-style defined in gc are ignored for
- this request. The effective function is Copy, and the
- effective fill-style Solid.
-
- For fonts defined with 2-byte matrix indexing, each STRING8
- byte is interpreted as a byte2 value of a CHAR2B with a
- byte1 value of zero.
-
- GC components: plane-mask, foreground, background, font,
- subwindow-mode, clip-x-origin, clip-y-origin, clip-mask
-
-
-
-
-
-
-
-
-
-
-
-
-
- 81
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | ImageText16
-
- drawable: DRAWABLE
- gc: GCONTEXT
- x, y: INT16
- string: STRING16
-
- |__ Errors: Drawable, GContext, Match
-
-
- This request is similar to ImageText8, except 2-byte (or
- 16-bit) characters are used. For fonts defined with linear
- indexing rather than 2-byte matrix indexing, the server will
- interpret each CHAR2B as a 16-bit number that has been
- transmitted most significant byte first (that is, byte1 of
- the CHAR2B is taken as the most significant byte).
-
-
- __
- | CreateColormap
-
- mid: COLORMAP
- visual: VISUALID
- window: WINDOW
- alloc: {None, All}
-
- |__ Errors: Alloc, IDChoice, Match, Value, Window
-
-
- This request creates a colormap of the specified visual type
- for the screen on which the window resides and associates
- the identifier mid with it. The visual type must be one
- supported by the screen (or a Match error results). The
- initial values of the colormap entries are undefined for
- classes GrayScale, PseudoColor, and DirectColor. For
- StaticGray, StaticColor, and TrueColor, the entries will
- have defined values, but those values are specific to the
- visual and are not defined by the core protocol. For
- StaticGray, StaticColor, and TrueColor, alloc must be speci-
- fied as None (or a Match error results). For the other
- classes, if alloc is None, the colormap initially has no
- allocated entries, and clients can allocate entries.
-
- If alloc is All, then the entire colormap is allocated
- writable. The initial values of all allocated entries are
- undefined. For GrayScale and PseudoColor, the effect is as
- if an AllocColorCells request returned all pixel values from
- zero to N - 1, where N is the colormap-entries value in the
- specified visual. For DirectColor, the effect is as if an
- AllocColorPlanes request returned a pixel value of zero and
- red-mask, green-mask, and blue-mask values containing the
- same bits as the corresponding masks in the specified
- visual. However, in all cases, none of these entries can be
- freed with FreeColors.
-
-
-
- 82
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | FreeColormap
-
- cmap: COLORMAP
-
- |__ Errors: Colormap
-
-
- This request deletes the association between the resource ID
- and the colormap and frees the colormap storage. If the
- colormap is an installed map for a screen, it is uninstalled
- (see UninstallColormap request). If the colormap is defined
- as the colormap for a window (by means of CreateWindow or
- ChangeWindowAttributes), the colormap for the window is
- changed to None, and a ColormapNotify event is generated.
- The protocol does not define the colors displayed for a win-
- dow with a colormap of None.
-
- This request has no effect on a default colormap for a
- screen.
-
-
- __
- | CopyColormapAndFree
-
- mid, src-cmap: COLORMAP
-
- |__ Errors: Alloc, Colormap, IDChoice
-
-
- This request creates a colormap of the same visual type and
- for the same screen as src-cmap, and it associates identi-
- fier mid with it. It also moves all of the client's exist-
- ing allocations from src-cmap to the new colormap with their
- color values intact and their read-only or writable charac-
- teristics intact, and it frees those entries in src-cmap.
- Color values in other entries in the new colormap are unde-
- fined. If src-cmap was created by the client with alloc All
- (see CreateColormap request), then the new colormap is also
- created with alloc All, all color values for all entries are
- copied from src-cmap, and then all entries in src-cmap are
- freed. If src-cmap was not created by the client with alloc
- All, then the allocations to be moved are all those pixels
- and planes that have been allocated by the client using
- either AllocColor, AllocNamedColor, AllocColorCells, or
- AllocColorPlanes and that have not been freed since they
- were allocated.
-
-
-
-
-
-
-
-
-
-
-
- 83
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | InstallColormap
-
- cmap: COLORMAP
-
- |__ Errors: Colormap
-
-
- This request makes this colormap an installed map for its
- screen. All windows associated with this colormap immedi-
- ately display with true colors. As a side effect, addi-
- tional colormaps might be implicitly installed or unin-
- stalled by the server. Which other colormaps get installed
- or uninstalled is server-dependent except that the required
- list must remain installed.
-
- If cmap is not already an installed map, a ColormapNotify
- event is generated on every window having cmap as an
- attribute. In addition, for every other colormap that is
- installed or uninstalled as a result of the request, a Col-
- ormapNotify event is generated on every window having that
- colormap as an attribute.
-
- At any time, there is a subset of the installed maps that
- are viewed as an ordered list and are called the required
- list. The length of the required list is at most M, where M
- is the min-installed-maps specified for the screen in the
- connection setup. The required list is maintained as fol-
- lows. When a colormap is an explicit argument to
- InstallColormap, it is added to the head of the list; the
- list is truncated at the tail, if necessary, to keep the
- length of the list to at most M. When a colormap is an
- explicit argument to UninstallColormap and it is in the
- required list, it is removed from the list. A colormap is
- not added to the required list when it is installed implic-
- itly by the server, and the server cannot implicitly unin-
- stall a colormap that is in the required list.
-
- Initially the default colormap for a screen is installed
- (but is not in the required list).
-
-
- __
- | UninstallColormap
-
- cmap: COLORMAP
-
- |__ Errors: Colormap
-
-
- If cmap is on the required list for its screen (see Install-
- Colormap request), it is removed from the list. As a side
- effect, cmap might be uninstalled, and additional colormaps
- might be implicitly installed or uninstalled. Which col-
- ormaps get installed or uninstalled is server-dependent
-
-
-
- 84
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- except that the required list must remain installed.
-
- If cmap becomes uninstalled, a ColormapNotify event is gen-
- erated on every window having cmap as an attribute. In
- addition, for every other colormap that is installed or
- uninstalled as a result of the request, a ColormapNotify
- event is generated on every window having that colormap as
- an attribute.
-
-
- __
- | ListInstalledColormaps
-
- window: WINDOW
-
- ->
-
- cmaps: LISTofCOLORMAP
-
- |__ Errors: Window
-
-
- This request returns a list of the currently installed col-
- ormaps for the screen of the specified window. The order of
- colormaps is not significant, and there is no explicit indi-
- cation of the required list (see InstallColormap request).
-
-
- __
- | AllocColor
-
- cmap: COLORMAP
- red, green, blue: CARD16
-
- ->
-
- pixel: CARD32
- red, green, blue: CARD16
-
- |__ Errors: Alloc, Colormap
-
-
- This request allocates a read-only colormap entry corre-
- sponding to the closest RGB values provided by the hardware.
- It also returns the pixel and the RGB values actually used.
- Multiple clients requesting the same effective RGB values
- can be assigned the same read-only entry, allowing entries
- to be shared.
-
-
-
-
-
-
-
-
-
- 85
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | AllocNamedColor
-
- cmap: COLORMAP
- name: STRING8
-
- ->
-
- pixel: CARD32
- exact-red, exact-green, exact-blue: CARD16
- visual-red, visual-green, visual-blue: CARD16
-
- |__ Errors: Alloc, Colormap, Name
-
-
- This request looks up the named color with respect to the
- screen associated with the colormap. Then, it does an
- AllocColor on cmap. The name should use the ISO Latin-1
- encoding, and uppercase and lowercase do not matter. The
- exact RGB values specify the true values for the color, and
- the visual values specify the values actually used in the
- colormap.
-
-
- __
- | AllocColorCells
-
- cmap: COLORMAP
- colors, planes: CARD16
- contiguous: BOOL
-
- ->
-
- pixels, masks: LISTofCARD32
-
- |__ Errors: Alloc, Colormap, Value
-
-
- The number of colors must be positive, and the number of
- planes must be nonnegative (or a Value error results). If C
- colors and P planes are requested, then C pixels and P masks
- are returned. No mask will have any bits in common with any
- other mask or with any of the pixels. By ORing together
- masks and pixels, C*2P distinct pixels can be produced; all
- of these are allocated writable by the request. For
- GrayScale or PseudoColor, each mask will have exactly one
- bit set to 1; for DirectColor, each will have exactly three
- bits set to 1. If contiguous is True and if all masks are
- ORed together, a single contiguous set of bits will be
- formed for GrayScale or PseudoColor, and three contiguous
- sets of bits (one within each pixel subfield) for
- DirectColor. The RGB values of the allocated entries are
- undefined.
-
-
-
-
-
- 86
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | AllocColorPlanes
-
- cmap: COLORMAP
- colors, reds, greens, blues: CARD16
- contiguous: BOOL
-
- ->
-
- pixels: LISTofCARD32
- red-mask, green-mask, blue-mask: CARD32
-
- |__ Errors: Alloc, Colormap, Value
-
-
- The number of colors must be positive, and the reds, greens,
- and blues must be nonnegative (or a Value error results).
- If C colors, R reds, G greens, and B blues are requested,
- then C pixels are returned, and the masks have R, G, and B
- bits set, respectively. If contiguous is True, then each
- mask will have a contiguous set of bits. No mask will have
- any bits in common with any other mask or with any of the
- pixels. For DirectColor, each mask will lie within the cor-
- responding pixel subfield. By ORing together subsets of
- masks with pixels, C*2R+G+B distinct pixels can be produced;
- all of these are allocated writable by the request. The
- initial RGB values of the allocated entries are undefined.
- In the colormap, there are only C*2R independent red
- entries, C*2G independent green entries, and C*2B indepen-
- dent blue entries. This is true even for PseudoColor. When
- the colormap entry for a pixel value is changed using Store-
- Colors or StoreNamedColor, the pixel is decomposed according
- to the masks and the corresponding independent entries are
- updated.
-
-
- __
- | FreeColors
-
- cmap: COLORMAP
- pixels: LISTofCARD32
- plane-mask: CARD32
-
- |__ Errors: Access, Colormap, Value
-
-
- The plane-mask should not have any bits in common with any
- of the pixels. The set of all pixels is produced by ORing
- together subsets of plane-mask with the pixels. The request
- frees all of these pixels that were allocated by the client
- (using AllocColor, AllocNamedColor, AllocColorCells, and
- AllocColorPlanes). Note that freeing an individual pixel
- obtained from AllocColorPlanes may not actually allow it to
- be reused until all of its related pixels are also freed.
- Similarly, a read-only entry is not actually freed until it
-
-
-
- 87
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- has been freed by all clients, and if a client allocates the
- same read-only entry multiple times, it must free the entry
- that many times before the entry is actually freed.
-
- All specified pixels that are allocated by the client in
- cmap are freed, even if one or more pixels produce an error.
- A Value error is generated if a specified pixel is not a
- valid index into cmap. An Access error is generated if a
- specified pixel is not allocated by the client (that is, is
- unallocated or is only allocated by another client) or if
- the colormap was created with all entries writable (using an
- alloc value of All in CreateColormap). If more than one
- pixel is in error, it is arbitrary as to which pixel is
- reported.
-
-
- __
- | StoreColors
-
- cmap: COLORMAP
- items: LISTofCOLORITEM
-
- where:
-
- COLORITEM: [pixel: CARD32
- do-red, do-green, do-blue: BOOL
- red, green, blue: CARD16]
-
-
- |__ Errors: Access, Colormap, Value
-
-
- This request changes the colormap entries of the specified
- pixels. The do-red, do-green, and do-blue fields indicate
- which components should actually be changed. If the col-
- ormap is an installed map for its screen, the changes are
- visible immediately.
-
- All specified pixels that are allocated writable in cmap (by
- any client) are changed, even if one or more pixels produce
- an error. A Value error is generated if a specified pixel
- is not a valid index into cmap, and an Access error is gen-
- erated if a specified pixel is unallocated or is allocated
- read-only. If more than one pixel is in error, it is arbi-
- trary as to which pixel is reported.
-
-
-
-
-
-
-
-
-
-
-
-
- 88
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | StoreNamedColor
-
- cmap: COLORMAP
- pixel: CARD32
- name: STRING8
- do-red, do-green, do-blue: BOOL
-
- |__ Errors: Access, Colormap, Name, Value
-
-
- This request looks up the named color with respect to the
- screen associated with cmap and then does a StoreColors in
- cmap. The name should use the ISO Latin-1 encoding, and
- uppercase and lowercase do not matter. The Access and Value
- errors are the same as in StoreColors.
-
-
- __
- | QueryColors
-
- cmap: COLORMAP
- pixels: LISTofCARD32
-
- ->
-
- colors: LISTofRGB
-
- where:
-
- RGB: [red, green, blue: CARD16]
-
- |__ Errors: Colormap, Value
-
-
- This request returns the hardware-specific color values
- stored in cmap for the specified pixels. The values
- returned for an unallocated entry are undefined. A Value
- error is generated if a pixel is not a valid index into
- cmap. If more than one pixel is in error, it is arbitrary
- as to which pixel is reported.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 89
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | LookupColor
-
- cmap: COLORMAP
- name: STRING8
-
- ->
-
- exact-red, exact-green, exact-blue: CARD16
- visual-red, visual-green, visual-blue: CARD16
-
- |__ Errors: Colormap, Name
-
-
- This request looks up the string name of a color with
- respect to the screen associated with cmap and returns both
- the exact color values and the closest values provided by
- the hardware with respect to the visual type of cmap. The
- name should use the ISO Latin-1 encoding, and uppercase and
- lowercase do not matter.
-
-
- __
- | CreateCursor
-
- cid: CURSOR
- source: PIXMAP
- mask: PIXMAP or None
- fore-red, fore-green, fore-blue: CARD16
- back-red, back-green, back-blue: CARD16
- x, y: CARD16
-
- |__ Errors: Alloc, IDChoice, Match, Pixmap
-
-
- This request creates a cursor and associates identifier cid
- with it. The foreground and background RGB values must be
- specified, even if the server only has a StaticGray or
- GrayScale screen. The foreground is used for the bits set
- to 1 in the source, and the background is used for the bits
- set to 0. Both source and mask (if specified) must have
- depth one (or a Match error results), but they can have any
- root. The mask pixmap defines the shape of the cursor.
- That is, the bits set to 1 in the mask define which source
- pixels will be displayed, and where the mask has bits set to
- 0, the corresponding bits of the source pixmap are ignored.
- If no mask is given, all pixels of the source are displayed.
- The mask, if present, must be the same size as the source
- (or a Match error results). The x and y coordinates define
- the hotspot relative to the source's origin and must be a
- point within the source (or a Match error results).
-
- The components of the cursor may be transformed arbitrarily
- to meet display limitations.
-
-
-
-
- 90
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- The pixmaps can be freed immediately if no further explicit
- references to them are to be made.
-
- Subsequent drawing in the source or mask pixmap has an unde-
- fined effect on the cursor. The server might or might not
- make a copy of the pixmap.
-
-
- __
- | CreateGlyphCursor
-
- cid: CURSOR
- source-font: FONT
- mask-font: FONT or None
- source-char, mask-char: CARD16
- fore-red, fore-green, fore-blue: CARD16
- back-red, back-green, back-blue: CARD16
-
- |__ Errors: Alloc, Font, IDChoice, Value
-
-
- This request is similar to CreateCursor, except the source
- and mask bitmaps are obtained from the specified font
- glyphs. The source-char must be a defined glyph in source-
- font, and if mask-font is given, mask-char must be a defined
- glyph in mask-font (or a Value error results). The mask
- font and character are optional. The origins of the source
- and mask (if it is defined) glyphs are positioned coinci-
- dently and define the hotspot. The source and mask need not
- have the same bounding box metrics, and there is no restric-
- tion on the placement of the hotspot relative to the bound-
- ing boxes. If no mask is given, all pixels of the source
- are displayed. Note that source-char and mask-char are
- CARD16, not CHAR2B. For 2-byte matrix fonts, the 16-bit
- value should be formed with byte1 in the most significant
- byte and byte2 in the least significant byte.
-
- The components of the cursor may be transformed arbitrarily
- to meet display limitations.
-
- The fonts can be freed immediately if no further explicit
- references to them are to be made.
-
-
- __
- | FreeCursor
-
- cursor: CURSOR
-
- |__ Errors: Cursor
-
-
- This request deletes the association between the resource ID
- and the cursor. The cursor storage will be freed when no
-
-
-
- 91
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- other resource references it.
-
-
- __
- | RecolorCursor
-
- cursor: CURSOR
- fore-red, fore-green, fore-blue: CARD16
- back-red, back-green, back-blue: CARD16
-
- |__ Errors: Cursor
-
-
- This request changes the color of a cursor. If the cursor
- is being displayed on a screen, the change is visible imme-
- diately.
-
-
- __
- | QueryBestSize
-
- class: {Cursor, Tile, Stipple}
- drawable: DRAWABLE
- width, height: CARD16
-
- ->
-
- width, height: CARD16
-
- |__ Errors: Drawable, Match, Value
-
-
- This request returns the best size that is closest to the
- argument size. For Cursor, this is the largest size that
- can be fully displayed. For Tile, this is the size that can
- be tiled fastest. For Stipple, this is the size that can be
- stippled fastest.
-
- For Cursor, the drawable indicates the desired screen. For
- Tile and Stipple, the drawable indicates the screen and also
- possibly the window class and depth. An InputOnly window
- cannot be used as the drawable for Tile or Stipple (or a
- Match error results).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 92
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | QueryExtension
-
- name: STRING8
-
- ->
-
- present: BOOL
- major-opcode: CARD8
- first-event: CARD8
- |__ first-error: CARD8
-
-
- This request determines if the named extension is present.
- If so, the major opcode for the extension is returned, if it
- has one. Otherwise, zero is returned. Any minor opcode and
- the request formats are specific to the extension. If the
- extension involves additional event types, the base event
- type code is returned. Otherwise, zero is returned. The
- format of the events is specific to the extension. If the
- extension involves additional error codes, the base error
- code is returned. Otherwise, zero is returned. The format
- of additional data in the errors is specific to the exten-
- sion.
-
- The extension name should use the ISO Latin-1 encoding, and
- uppercase and lowercase matter.
-
-
- __
- | ListExtensions
-
- ->
-
- |__ names: LISTofSTRING8
-
-
- This request returns a list of all extensions supported by
- the server.
-
- __
- | SetModifierMapping
-
- keycodes-per-modifier: CARD8
- keycodes: LISTofKEYCODE
-
- ->
-
- status: {Success, Busy, Failed}
-
- |__ Errors: Alloc, Value
-
-
- This request specifies the keycodes (if any) of the keys to
- be used as modifiers. The number of keycodes in the list
-
-
-
- 93
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- must be 8*keycodes-per-modifier (or a Length error results).
- The keycodes are divided into eight sets, with each set con-
- taining keycodes-per-modifier elements. The sets are
- assigned to the modifiers Shift, Lock, Control, Mod1, Mod2,
- Mod3, Mod4, and Mod5, in order. Only nonzero keycode values
- are used within each set; zero values are ignored. All of
- the nonzero keycodes must be in the range specified by min-
- keycode and max-keycode in the connection setup (or a Value
- error results). The order of keycodes within a set does not
- matter. If no nonzero values are specified in a set, the
- use of the corresponding modifier is disabled, and the modi-
- fier bit will always be zero. Otherwise, the modifier bit
- will be one whenever at least one of the keys in the corre-
- sponding set is in the down position.
-
- A server can impose restrictions on how modifiers can be
- changed (for example, if certain keys do not generate up
- transitions in hardware, if auto-repeat cannot be disabled
- on certain keys, or if multiple keys per modifier are not
- supported). The status reply is Failed if some such
- restriction is violated, and none of the modifiers is
- changed.
-
- If the new nonzero keycodes specified for a modifier differ
- from those currently defined and any (current or new) keys
- for that modifier are logically in the down state, then the
- status reply is Busy, and none of the modifiers is changed.
-
- This request generates a MappingNotify event on a Success
- status.
-
-
- __
- | GetModifierMapping
-
- ->
-
- keycodes-per-modifier: CARD8
- |__ keycodes: LISTofKEYCODE
-
-
- This request returns the keycodes of the keys being used as
- modifiers. The number of keycodes in the list is 8*key-
- codes-per-modifier. The keycodes are divided into eight
- sets, with each set containing keycodes-per-modifier ele-
- ments. The sets are assigned to the modifiers Shift, Lock,
- Control, Mod1, Mod2, Mod3, Mod4, and Mod5, in order. The
- keycodes-per-modifier value is chosen arbitrarily by the
- server; zeroes are used to fill in unused elements within
- each set. If only zero values are given in a set, the use
- of the corresponding modifier has been disabled. The order
- of keycodes within each set is chosen arbitrarily by the
- server.
-
-
-
-
- 94
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | ChangeKeyboardMapping
-
- first-keycode: KEYCODE
- keysyms-per-keycode: CARD8
- keysyms: LISTofKEYSYM
-
- |__ Errors: Alloc, Value
-
-
- This request defines the symbols for the specified number of
- keycodes, starting with the specified keycode. The symbols
- for keycodes outside this range remained unchanged. The
- number of elements in the keysyms list must be a multiple of
- keysyms-per-keycode (or a Length error results). The first-
- keycode must be greater than or equal to min-keycode as
- returned in the connection setup (or a Value error results)
- and:
-
- first-keycode + (keysyms-length / keysyms-per-keycode) - 1
-
-
- must be less than or equal to max-keycode as returned in the
- connection setup (or a Value error results). KEYSYM number
- N (counting from zero) for keycode K has an index (counting
- from zero) of:
-
- (K - first-keycode) * keysyms-per-keycode + N
-
-
- in keysyms. The keysyms-per-keycode can be chosen arbitrar-
- ily by the client to be large enough to hold all desired
- symbols. A special KEYSYM value of NoSymbol should be used
- to fill in unused elements for individual keycodes. It is
- legal for NoSymbol to appear in nontrailing positions of the
- effective list for a keycode.
-
- This request generates a MappingNotify event.
-
- There is no requirement that the server interpret this map-
- ping; it is merely stored for reading and writing by clients
- (see section 5).
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 95
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | GetKeyboardMapping
-
- first-keycode: KEYCODE
- count: CARD8
-
- ->
-
- keysyms-per-keycode: CARD8
- keysyms: LISTofKEYSYM
-
- |__ Errors: Value
-
-
- This request returns the symbols for the specified number of
- keycodes, starting with the specified keycode. The first-
- keycode must be greater than or equal to min-keycode as
- returned in the connection setup (or a Value error results),
- and:
-
- first-keycode + count - 1
-
-
- must be less than or equal to max-keycode as returned in the
- connection setup (or a Value error results). The number of
- elements in the keysyms list is:
-
- count * keysyms-per-keycode
-
-
- and KEYSYM number N (counting from zero) for keycode K has
- an index (counting from zero) of:
-
- (K - first-keycode) * keysyms-per-keycode + N
-
-
- in keysyms. The keysyms-per-keycode value is chosen arbi-
- trarily by the server to be large enough to report all
- requested symbols. A special KEYSYM value of NoSymbol is
- used to fill in unused elements for individual keycodes.
-
-
- __
- | ChangeKeyboardControl
-
- value-mask: BITMASK
- value-list: LISTofVALUE
-
- |__ Errors: Match, Value
-
-
- This request controls various aspects of the keyboard. The
- value-mask and value-list specify which controls are to be
- changed. The possible values are:
-
-
-
-
- 96
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- ---------------------------------------
- Control Type
- ---------------------------------------
- key-click-percent INT8
- bell-percent INT8
- bell-pitch INT16
- bell-duration INT16
- led CARD8
- led-mode {On, Off}
- key KEYCODE
- auto-repeat-mode {On, Off, Default}
- ---------------------------------------
-
-
- The key-click-percent sets the volume for key clicks between
- 0 (off) and 100 (loud) inclusive, if possible. Setting to
- -1 restores the default. Other negative values generate a
- Value error.
-
- The bell-percent sets the base volume for the bell between 0
- (off) and 100 (loud) inclusive, if possible. Setting to -1
- restores the default. Other negative values generate a
- Value error.
-
- The bell-pitch sets the pitch (specified in Hz) of the bell,
- if possible. Setting to -1 restores the default. Other
- negative values generate a Value error.
-
- The bell-duration sets the duration of the bell (specified
- in milliseconds), if possible. Setting to -1 restores the
- default. Other negative values generate a Value error.
-
- If both led-mode and led are specified, then the state of
- that LED is changed, if possible. If only led-mode is spec-
- ified, then the state of all LEDs are changed, if possible.
- At most 32 LEDs, numbered from one, are supported. No stan-
- dard interpretation of LEDs is defined. It is a Match error
- if an led is specified without an led-mode.
-
- If both auto-repeat-mode and key are specified, then the
- auto-repeat mode of that key is changed, if possible. If
- only auto-repeat-mode is specified, then the global auto-
- repeat mode for the entire keyboard is changed, if possible,
- without affecting the per-key settings. It is a Match error
- if a key is specified without an auto-repeat-mode. Each key
- has an individual mode of whether or not it should auto-
- repeat and a default setting for that mode. In addition,
- there is a global mode of whether auto-repeat should be
- enabled or not and a default setting for that mode. When
- the global mode is On, keys should obey their individual
- auto-repeat modes. When the global mode is Off, no keys
- should auto-repeat. An auto-repeating key generates alter-
- nating KeyPress and KeyRelease events. When a key is used
- as a modifier, it is desirable for the key not to auto-
-
-
-
- 97
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- repeat, regardless of the auto-repeat setting for that key.
-
- A bell generator connected with the console but not directly
- on the keyboard is treated as if it were part of the key-
- board.
-
- The order in which controls are verified and altered is
- server-dependent. If an error is generated, a subset of the
- controls may have been altered.
-
-
- __
- | GetKeyboardControl
-
- ->
-
- key-click-percent: CARD8
- bell-percent: CARD8
- bell-pitch: CARD16
- bell-duration: CARD16
- led-mask: CARD32
- global-auto-repeat: {On, Off}
- |__ auto-repeats: LISTofCARD8
-
-
- This request returns the current control values for the key-
- board. For the LEDs, the least significant bit of led-mask
- corresponds to LED one, and each one bit in led-mask indi-
- cates an LED that is lit. The auto-repeats is a bit vector;
- each one bit indicates that auto-repeat is enabled for the
- corresponding key. The vector is represented as 32 bytes.
- Byte N (from 0) contains the bits for keys 8N to 8N + 7,
- with the least significant bit in the byte representing key
- 8N.
-
-
- __
- | Bell
-
- percent: INT8
-
- |__ Errors: Value
-
-
- This request rings the bell on the keyboard at a volume rel-
- ative to the base volume for the keyboard, if possible.
- Percent can range from -100 to 100 inclusive (or a Value
- error results). The volume at which the bell is rung when
- percent is nonnegative is:
-
- base - [(base * percent) / 100] + percent
-
-
-
-
-
-
- 98
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- When percent is negative, it is:
-
- base + [(base * percent) / 100]
-
-
-
- __
- | SetPointerMapping
-
- map: LISTofCARD8
-
- ->
-
- status: {Success, Busy}
-
- |__ Errors: Value
-
-
- This request sets the mapping of the pointer. Elements of
- the list are indexed starting from one. The length of the
- list must be the same as GetPointerMapping would return (or
- a Value error results). The index is a core button number,
- and the element of the list defines the effective number.
-
- A zero element disables a button. Elements are not
- restricted in value by the number of physical buttons, but
- no two elements can have the same nonzero value (or a Value
- error results).
-
- If any of the buttons to be altered are logically in the
- down state, the status reply is Busy, and the mapping is not
- changed.
-
- This request generates a MappingNotify event on a Success
- status.
-
-
- __
- | GetPointerMapping
-
- ->
-
- |__ map: LISTofCARD8
-
-
- This request returns the current mapping of the pointer.
- Elements of the list are indexed starting from one. The
- length of the list indicates the number of physical buttons.
-
- The nominal mapping for a pointer is the identity mapping:
- map[i]=i.
-
-
-
-
-
-
- 99
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | ChangePointerControl
-
- do-acceleration, do-threshold: BOOL
- acceleration-numerator, acceleration-denominator: INT16
- threshold: INT16
-
- |__ Errors: Value
-
-
- This request defines how the pointer moves. The accelera-
- tion is a multiplier for movement expressed as a fraction.
- For example, specifying 3/1 means the pointer moves three
- times as fast as normal. The fraction can be rounded arbi-
- trarily by the server. Acceleration only takes effect if
- the pointer moves more than threshold number of pixels at
- once and only applies to the amount beyond the threshold.
- Setting a value to -1 restores the default. Other negative
- values generate a Value error, as does a zero value for
- acceleration-denominator.
-
-
- __
- | GetPointerControl
-
- ->
-
- acceleration-numerator, acceleration-denominator: CARD16
- |__ threshold: CARD16
-
-
- This request returns the current acceleration and threshold
- for the pointer.
-
-
- __
- | SetScreenSaver
-
- timeout, interval: INT16
- prefer-blanking: {Yes, No, Default}
- allow-exposures: {Yes, No, Default}
-
- |__ Errors: Value
-
-
- The timeout and interval are specified in seconds; setting a
- value to -1 restores the default. Other negative values
- generate a Value error. If the timeout value is zero,
- screen-saver is disabled (but an activated screen-saver is
- not deactivated). If the timeout value is nonzero, screen-
- saver is enabled. Once screen-saver is enabled, if no input
- from the keyboard or pointer is generated for timeout sec-
- onds, screen-saver is activated. For each screen, if blank-
- ing is preferred and the hardware supports video blanking,
- the screen will simply go blank. Otherwise, if either
-
-
-
- 100
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- exposures are allowed or the screen can be regenerated with-
- out sending exposure events to clients, the screen is
- changed in a server-dependent fashion to avoid phosphor
- burn. Otherwise, the state of the screens does not change,
- and screen-saver is not activated. At the next keyboard or
- pointer input or at the next ForceScreenSaver with mode
- Reset, screen-saver is deactivated, and all screen states
- are restored.
-
- If the server-dependent screen-saver method is amenable to
- periodic change, interval serves as a hint about how long
- the change period should be, with zero hinting that no peri-
- odic change should be made. Examples of ways to change the
- screen include scrambling the color map periodically, moving
- an icon image about the screen periodically, or tiling the
- screen with the root window background tile, randomly reo-
- rigined periodically.
-
-
- __
- | GetScreenSaver
-
- ->
-
- timeout, interval: CARD16
- prefer-blanking: {Yes, No}
- |__ allow-exposures: {Yes, No}
-
-
- This request returns the current screen-saver control val-
- ues.
-
-
- __
- | ForceScreenSaver
-
- mode: {Activate, Reset}
-
- |__ Errors: Value
-
-
- If the mode is Activate and screen-saver is currently deac-
- tivated, then screen-saver is activated (even if screen-
- saver has been disabled with a timeout value of zero). If
- the mode is Reset and screen-saver is currently enabled,
- then screen-saver is deactivated (if it was activated), and
- the activation timer is reset to its initial state as if
- device input had just been received.
-
-
-
-
-
-
-
-
-
- 101
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | ChangeHosts
-
- mode: {Insert, Delete}
- host: HOST
-
- |__ Errors: Access, Value
-
-
- This request adds or removes the specified host from the
- access control list. When the access control mechanism is
- enabled and a client attempts to establish a connection to
- the server, the host on which the client resides must be in
- the access control list, or the client must have been
- granted permission by a server-dependent method, or the
- server will refuse the connection.
-
- The client must reside on the same host as the server and/or
- have been granted permission by a server-dependent method to
- execute this request (or an Access error results).
-
- An initial access control list can usually be specified,
- typically by naming a file that the server reads at startup
- and reset.
-
- The following address families are defined. A server is not
- required to support these families and may support families
- not listed here. Use of an unsupported family, an improper
- address format, or an improper address length within a sup-
- ported family results in a Value error.
-
- For the Internet family, the address must be four bytes
- long. The address bytes are in standard IP order; the
- server performs no automatic swapping on the address bytes.
- For a Class A address, the network number is the first byte
- in the address, and the host number is the remaining three
- bytes, most significant byte first. For a Class B address,
- the network number is the first two bytes and the host num-
- ber is the last two bytes, each most significant byte first.
- For a Class C address, the network number is the first three
- bytes, most significant byte first, and the last byte is the
- host number.
-
- For the DECnet family, the server performs no automatic
- swapping on the address bytes. A Phase IV address is two
- bytes long: the first byte contains the least significant
- eight bits of the node number, and the second byte contains
- the most significant two bits of the node number in the
- least significant two bits of the byte and the area in the
- most significant six bits of the byte.
-
- For the Chaos family, the address must be two bytes long.
- The host number is always the first byte in the address, and
- the subnet number is always the second byte. The server
- performs no automatic swapping on the address bytes.
-
-
-
- 102
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | ListHosts
-
- ->
-
- mode: {Enabled, Disabled}
- |__ hosts: LISTofHOST
-
-
- This request returns the hosts on the access control list
- and whether use of the list at connection setup is currently
- enabled or disabled.
-
- Each HOST is padded to a multiple of four bytes.
-
-
- __
- | SetAccessControl
-
- mode: {Enable, Disable}
-
- |__ Errors: Access, Value
-
-
- This request enables or disables the use of the access con-
- trol list at connection setups.
-
- The client must reside on the same host as the server and/or
- have been granted permission by a server-dependent method to
- execute this request (or an Access error results).
-
-
- __
- | SetCloseDownMode
-
- mode: {Destroy, RetainPermanent, RetainTemporary}
-
- |__ Errors: Value
-
-
- This request defines what will happen to the client's
- resources at connection close. A connection starts in
- Destroy mode. The meaning of the close-down mode is
- described in section 10.
-
-
- __
- | KillClient
-
- resource: CARD32 or AllTemporary
-
- |__ Errors: Value
-
-
-
-
-
-
- 103
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- If a valid resource is specified, KillClient forces a close-
- down of the client that created the resource. If the client
- has already terminated in either RetainPermanent or Retain-
- Temporary mode, all of the client's resources are destroyed
- (see section 10). If AllTemporary is specified, then the
- resources of all clients that have terminated in RetainTem-
- porary are destroyed.
-
-
- __
- |__ NoOperation
-
-
- This request has no arguments and no results, but the
- request length field allows the request to be any multiple
- of four bytes in length. The bytes contained in the request
- are uninterpreted by the server.
-
- This request can be used in its minimum four byte form as
- padding where necessary by client libraries that find it
- convenient to force requests to begin on 64-bit boundaries.
-
- 10. Connection Close
-
- At connection close, all event selections made by the client
- are discarded. If the client has the pointer actively
- grabbed, an UngrabPointer is performed. If the client has
- the keyboard actively grabbed, an UngrabKeyboard is per-
- formed. All passive grabs by the client are released. If
- the client has the server grabbed, an UngrabServer is per-
- formed. All selections (see SetSelectionOwner request)
- owned by the client are disowned. If close-down mode (see
- SetCloseDownMode request) is RetainPermanent or
- RetainTemporary, then all resources (including colormap
- entries) allocated by the client are marked as permanent or
- temporary, respectively (but this does not prevent other
- clients from explicitly destroying them). If the mode is
- Destroy, all of the client's resources are destroyed.
-
- When a client's resources are destroyed, for each window in
- the client's save-set, if the window is an inferior of a
- window created by the client, the save-set window is repar-
- ented to the closest ancestor such that the save-set window
- is not an inferior of a window created by the client. If
- the save-set window is unmapped, a MapWindow request is per-
- formed on it (even if it was not an inferior of a window
- created by the client). The reparenting leaves unchanged
- the absolute coordinates (with respect to the root window)
- of the upper-left outer corner of the save-set window.
- After save-set processing, all windows created by the client
- are destroyed. For each nonwindow resource created by the
- client, the appropriate Free request is performed. All col-
- ors and colormap entries allocated by the client are freed.
-
-
-
-
- 104
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- A server goes through a cycle of having no connections and
- having some connections. At every transition to the state
- of having no connections as a result of a connection closing
- with a Destroy close-down mode, the server resets its state
- as if it had just been started. This starts by destroying
- all lingering resources from clients that have terminated in
- RetainPermanent or RetainTemporary mode. It additionally
- includes deleting all but the predefined atom identifiers,
- deleting all properties on all root windows, resetting all
- device maps and attributes (key click, bell volume, acceler-
- ation), resetting the access control list, restoring the
- standard root tiles and cursors, restoring the default font
- path, and restoring the input focus to state PointerRoot.
-
- Note that closing a connection with a close-down mode of
- RetainPermanent or RetainTemporary will not cause the server
- to reset.
-
- 11. Events
-
- When a button press is processed with the pointer in some
- window W and no active pointer grab is in progress, the
- ancestors of W are searched from the root down, looking for
- a passive grab to activate. If no matching passive grab on
- the button exists, then an active grab is started automati-
- cally for the client receiving the event, and the last-
- pointer-grab time is set to the current server time. The
- effect is essentially equivalent to a GrabButton with argu-
- ments:
-
- -----------------------------------------------------------
- Argument Value
- -----------------------------------------------------------
- event-window Event window
- event-mask Client's selected pointer events
- on the event window
- pointer-mode and key- Asynchronous
- board-mode
- owner-events True if the client has Owner-
- GrabButton selected on the event
- window, otherwise False
- confine-to None
- cursor None
- -----------------------------------------------------------
-
-
- The grab is terminated automatically when the logical state
- of the pointer has all buttons released. UngrabPointer and
- ChangeActivePointerGrab can both be used to modify the
- active grab.
-
-
-
-
-
-
-
- 105
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | KeyPress
- KeyRelease
- ButtonPress
- ButtonRelease
- MotionNotify
-
- root, event: WINDOW
- child: WINDOW or None
- same-screen: BOOL
- root-x, root-y, event-x, event-y: INT16
- detail: <see below>
- state: SETofKEYBUTMASK
- |__ time: TIMESTAMP
-
-
- These events are generated either when a key or button logi-
- cally changes state or when the pointer logically moves.
- The generation of these logical changes may lag the physical
- changes if device event processing is frozen. Note that
- KeyPress and KeyRelease are generated for all keys, even
- those mapped to modifier bits. The source of the event is
- the window the pointer is in. The window the event is
- reported with respect to is called the event window. The
- event window is found by starting with the source window and
- looking up the hierarchy for the first window on which any
- client has selected interest in the event (provided no
- intervening window prohibits event generation by including
- the event type in its do-not-propagate-mask). The actual
- window used for reporting can be modified by active grabs
- and, in the case of keyboard events, can be modified by the
- focus window.
-
- The root is the root window of the source window, and root-x
- and root-y are the pointer coordinates relative to root's
- origin at the time of the event. Event is the event window.
- If the event window is on the same screen as root, then
- event-x and event-y are the pointer coordinates relative to
- the event window's origin. Otherwise, event-x and event-y
- are zero. If the source window is an inferior of the event
- window, then child is set to the child of the event window
- that is an ancestor of (or is) the source window. Other-
- wise, it is set to None. The state component gives the log-
- ical state of the buttons and modifier keys just before the
- event. The detail component type varies with the event
- type:
-
- --------------------------------------
- Event Component
- --------------------------------------
- KeyPress, KeyRelease KEYCODE
- ButtonPress, Button- BUTTON
- Release
-
-
-
-
-
- 106
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- --------------------------------------
- Event Component
- --------------------------------------
- MotionNotify {Normal, Hint}
- --------------------------------------
-
-
- MotionNotify events are only generated when the motion
- begins and ends in the window. The granularity of motion
- events is not guaranteed, but a client selecting for motion
- events is guaranteed to get at least one event when the
- pointer moves and comes to rest. Selecting PointerMotion
- receives events independent of the state of the pointer but-
- tons. By selecting some subset of Button[1-5]Motion
- instead, MotionNotify events will only be received when one
- or more of the specified buttons are pressed. By selecting
- ButtonMotion, MotionNotify events will be received only when
- at least one button is pressed. The events are always of
- type MotionNotify, independent of the selection. If Point-
- erMotionHint is selected, the server is free to send only
- one MotionNotify event (with detail Hint) to the client for
- the event window until either the key or button state
- changes, the pointer leaves the event window, or the client
- issues a QueryPointer or GetMotionEvents request.
-
-
- __
- | EnterNotify
- LeaveNotify
-
- root, event: WINDOW
- child: WINDOW or None
- same-screen: BOOL
- root-x, root-y, event-x, event-y: INT16
- mode: {Normal, Grab, Ungrab}
- detail: {Ancestor, Virtual, Inferior, Nonlinear,
- NonlinearVirtual}
- focus: BOOL
- state: SETofKEYBUTMASK
- |__ time: TIMESTAMP
-
-
- If pointer motion or window hierarchy change causes the
- pointer to be in a different window than before, EnterNotify
- and LeaveNotify events are generated instead of a MotionNo-
- tify event. Only clients selecting EnterWindow on a window
- receive EnterNotify events, and only clients selecting
- LeaveWindow receive LeaveNotify events. The pointer posi-
- tion reported in the event is always the final position, not
- the initial position of the pointer. The root is the root
- window for this position, and root-x and root-y are the
- pointer coordinates relative to root's origin at the time of
- the event. Event is the event window. If the event window
- is on the same screen as root, then event-x and event-y are
-
-
-
- 107
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- the pointer coordinates relative to the event window's ori-
- gin. Otherwise, event-x and event-y are zero. In a
- LeaveNotify event, if a child of the event window contains
- the initial position of the pointer, then the child compo-
- nent is set to that child. Otherwise, it is None. For an
- EnterNotify event, if a child of the event window contains
- the final pointer position, then the child component is set
- to that child. Otherwise, it is None. If the event window
- is the focus window or an inferior of the focus window, then
- focus is True. Otherwise, focus is False.
-
- Normal pointer motion events have mode Normal. Pseudo-
- motion events when a grab activates have mode Grab, and
- pseudo-motion events when a grab deactivates have mode
- Ungrab.
-
- All EnterNotify and LeaveNotify events caused by a hierarchy
- change are generated after any hierarchy event caused by
- that change (that is, UnmapNotify, MapNotify,
- ConfigureNotify, GravityNotify, CirculateNotify), but the
- ordering of EnterNotify and LeaveNotify events with respect
- to FocusOut, VisibilityNotify, and Expose events is not con-
- strained.
-
- Normal events are generated as follows:
-
- When the pointer moves from window A to window B and A is an
- inferior of B:
-
- o LeaveNotify with detail Ancestor is generated on A.
-
- o LeaveNotify with detail Virtual is generated on each
- window between A and B exclusive (in that order).
-
- o EnterNotify with detail Inferior is generated on B.
-
- When the pointer moves from window A to window B and B is an
- inferior of A:
-
- o LeaveNotify with detail Inferior is generated on A.
-
- o EnterNotify with detail Virtual is generated on each
- window between A and B exclusive (in that order).
-
- o EnterNotify with detail Ancestor is generated on B.
-
- When the pointer moves from window A to window B and window
- C is their least common ancestor:
-
- o LeaveNotify with detail Nonlinear is generated on A.
-
- o LeaveNotify with detail NonlinearVirtual is generated
- on each window between A and C exclusive (in that
- order).
-
-
-
- 108
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- o EnterNotify with detail NonlinearVirtual is generated
- on each window between C and B exclusive (in that
- order).
-
- o EnterNotify with detail Nonlinear is generated on B.
-
- When the pointer moves from window A to window B on differ-
- ent screens:
-
- o LeaveNotify with detail Nonlinear is generated on A.
-
- o If A is not a root window, LeaveNotify with detail Non-
- linearVirtual is generated on each window above A up to
- and including its root (in order).
-
- o If B is not a root window, EnterNotify with detail Non-
- linearVirtual is generated on each window from B's root
- down to but not including B (in order).
-
- o EnterNotify with detail Nonlinear is generated on B.
-
- When a pointer grab activates (but after any initial warp
- into a confine-to window and before generating any actual
- ButtonPress event that activates the grab), G is the grab-
- window for the grab, and P is the window the pointer is in:
-
- o EnterNotify and LeaveNotify events with mode Grab are
- generated (as for Normal above) as if the pointer were
- to suddenly warp from its current position in P to some
- position in G. However, the pointer does not warp, and
- the pointer position is used as both the initial and
- final positions for the events.
-
- When a pointer grab deactivates (but after generating any
- actual ButtonRelease event that deactivates the grab), G is
- the grab-window for the grab, and P is the window the
- pointer is in:
-
- o EnterNotify and LeaveNotify events with mode Ungrab are
- generated (as for Normal above) as if the pointer were
- to suddenly warp from some position in G to its current
- position in P. However, the pointer does not warp, and
- the current pointer position is used as both the ini-
- tial and final positions for the events.
-
-
-
-
-
-
-
-
-
-
-
-
-
- 109
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | FocusIn
- FocusOut
-
- event: WINDOW
- mode: {Normal, WhileGrabbed, Grab, Ungrab}
- detail: {Ancestor, Virtual, Inferior, Nonlinear,
- NonlinearVirtual, Pointer,
- |__ PointerRoot, None}
-
-
- These events are generated when the input focus changes and
- are reported to clients selecting FocusChange on the window.
- Events generated by SetInputFocus when the keyboard is not
- grabbed have mode Normal. Events generated by SetInputFocus
- when the keyboard is grabbed have mode WhileGrabbed. Events
- generated when a keyboard grab activates have mode Grab, and
- events generated when a keyboard grab deactivates have mode
- Ungrab.
-
- All FocusOut events caused by a window unmap are generated
- after any UnmapNotify event, but the ordering of FocusOut
- with respect to generated EnterNotify, LeaveNotify,
- VisibilityNotify, and Expose events is not constrained.
-
- Normal and WhileGrabbed events are generated as follows:
-
- When the focus moves from window A to window B, A is an
- inferior of B, and the pointer is in window P:
-
- o FocusOut with detail Ancestor is generated on A.
-
- o FocusOut with detail Virtual is generated on each win-
- dow between A and B exclusive (in order).
-
- o FocusIn with detail Inferior is generated on B.
-
- o If P is an inferior of B but P is not A or an inferior
- of A or an ancestor of A, FocusIn with detail Pointer
- is generated on each window below B down to and includ-
- ing P (in order).
-
- When the focus moves from window A to window B, B is an
- inferior of A, and the pointer is in window P:
-
- o If P is an inferior of A but P is not an inferior of B
- or an ancestor of B, FocusOut with detail Pointer is
- generated on each window from P up to but not including
- A (in order).
-
- o FocusOut with detail Inferior is generated on A.
-
- o FocusIn with detail Virtual is generated on each window
- between A and B exclusive (in order).
-
-
-
-
- 110
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- o FocusIn with detail Ancestor is generated on B.
-
- When the focus moves from window A to window B, window C is
- their least common ancestor, and the pointer is in window P:
-
- o If P is an inferior of A, FocusOut with detail Pointer
- is generated on each window from P up to but not
- including A (in order).
-
- o FocusOut with detail Nonlinear is generated on A.
-
- o FocusOut with detail NonlinearVirtual is generated on
- each window between A and C exclusive (in order).
-
- o FocusIn with detail NonlinearVirtual is generated on
- each window between C and B exclusive (in order).
-
- o FocusIn with detail Nonlinear is generated on B.
-
- o If P is an inferior of B, FocusIn with detail Pointer
- is generated on each window below B down to and includ-
- ing P (in order).
-
- When the focus moves from window A to window B on different
- screens and the pointer is in window P:
-
- o If P is an inferior of A, FocusOut with detail Pointer
- is generated on each window from P up to but not
- including A (in order).
-
- o FocusOut with detail Nonlinear is generated on A.
-
- o If A is not a root window, FocusOut with detail Nonlin-
- earVirtual is generated on each window above A up to
- and including its root (in order).
-
- o If B is not a root window, FocusIn with detail Nonlin-
- earVirtual is generated on each window from B's root
- down to but not including B (in order).
-
- o FocusIn with detail Nonlinear is generated on B.
-
- o If P is an inferior of B, FocusIn with detail Pointer
- is generated on each window below B down to and includ-
- ing P (in order).
-
- When the focus moves from window A to PointerRoot (or None)
- and the pointer is in window P:
-
- o If P is an inferior of A, FocusOut with detail Pointer
- is generated on each window from P up to but not
- including A (in order).
-
-
-
-
-
- 111
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- o FocusOut with detail Nonlinear is generated on A.
-
- o If A is not a root window, FocusOut with detail Nonlin-
- earVirtual is generated on each window above A up to
- and including its root (in order).
-
- o FocusIn with detail PointerRoot (or None) is generated
- on all root windows.
-
- o If the new focus is PointerRoot, FocusIn with detail
- Pointer is generated on each window from P's root down
- to and including P (in order).
-
- When the focus moves from PointerRoot (or None) to window A
- and the pointer is in window P:
-
- o If the old focus is PointerRoot, FocusOut with detail
- Pointer is generated on each window from P up to and
- including P's root (in order).
-
- o FocusOut with detail PointerRoot (or None) is generated
- on all root windows.
-
- o If A is not a root window, FocusIn with detail Nonlin-
- earVirtual is generated on each window from A's root
- down to but not including A (in order).
-
- o FocusIn with detail Nonlinear is generated on A.
-
- o If P is an inferior of A, FocusIn with detail Pointer
- is generated on each window below A down to and includ-
- ing P (in order).
-
- When the focus moves from PointerRoot to None (or vice
- versa) and the pointer is in window P:
-
- o If the old focus is PointerRoot, FocusOut with detail
- Pointer is generated on each window from P up to and
- including P's root (in order).
-
- o FocusOut with detail PointerRoot (or None) is generated
- on all root windows.
-
- o FocusIn with detail None (or PointerRoot) is generated
- on all root windows.
-
- o If the new focus is PointerRoot, FocusIn with detail
- Pointer is generated on each window from P's root down
- to and including P (in order).
-
- When a keyboard grab activates (but before generating any
- actual KeyPress event that activates the grab), G is the
- grab-window for the grab, and F is the current focus:
-
-
-
-
- 112
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- o FocusIn and FocusOut events with mode Grab are gener-
- ated (as for Normal above) as if the focus were to
- change from F to G.
-
- When a keyboard grab deactivates (but after generating any
- actual KeyRelease event that deactivates the grab), G is the
- grab-window for the grab, and F is the current focus:
-
- o FocusIn and FocusOut events with mode Ungrab are gener-
- ated (as for Normal above) as if the focus were to
- change from G to F.
-
-
- __
- | KeymapNotify
-
- |__ keys: LISTofCARD8
-
-
- The value is a bit vector as described in QueryKeymap. This
- event is reported to clients selecting KeymapState on a win-
- dow and is generated immediately after every EnterNotify and
- FocusIn.
-
-
- __
- | Expose
-
- window: WINDOW
- x, y, width, height: CARD16
- |__ count: CARD16
-
-
- This event is reported to clients selecting Exposure on the
- window. It is generated when no valid contents are avail-
- able for regions of a window, and either the regions are
- visible, the regions are viewable and the server is (perhaps
- newly) maintaining backing store on the window, or the win-
- dow is not viewable but the server is (perhaps newly) honor-
- ing window's backing-store attribute of Always or
- WhenMapped. The regions are decomposed into an arbitrary
- set of rectangles, and an Expose event is generated for each
- rectangle.
-
- For a given action causing exposure events, the set of
- events for a given window are guaranteed to be reported con-
- tiguously. If count is zero, then no more Expose events for
- this window follow. If count is nonzero, then at least that
- many more Expose events for this window follow (and possibly
- more).
-
- The x and y coordinates are relative to window's origin and
- specify the upper-left corner of a rectangle. The width and
- height specify the extent of the rectangle.
-
-
-
- 113
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Expose events are never generated on InputOnly windows.
-
- All Expose events caused by a hierarchy change are generated
- after any hierarchy event caused by that change (for exam-
- ple, UnmapNotify, MapNotify, ConfigureNotify, GravityNotify,
- CirculateNotify). All Expose events on a given window are
- generated after any VisibilityNotify event on that window,
- but it is not required that all Expose events on all windows
- be generated after all Visibilitity events on all windows.
- The ordering of Expose events with respect to FocusOut,
- EnterNotify, and LeaveNotify events is not constrained.
-
-
- __
- | GraphicsExposure
-
- drawable: DRAWABLE
- x, y, width, height: CARD16
- count: CARD16
- major-opcode: CARD8
- |__ minor-opcode: CARD16
-
-
- This event is reported to a client using a graphics context
- with graphics-exposures selected and is generated when a
- destination region could not be computed due to an obscured
- or out-of-bounds source region. All of the regions exposed
- by a given graphics request are guaranteed to be reported
- contiguously. If count is zero then no more GraphicsExpo-
- sure events for this window follow. If count is nonzero,
- then at least that many more GraphicsExposure events for
- this window follow (and possibly more).
-
- The x and y coordinates are relative to drawable's origin
- and specify the upper-left corner of a rectangle. The width
- and height specify the extent of the rectangle.
-
- The major and minor opcodes identify the graphics request
- used. For the core protocol, major-opcode is always Copy-
- Area or CopyPlane, and minor-opcode is always zero.
-
-
- __
- | NoExposure
-
- drawable: DRAWABLE
- major-opcode: CARD8
- |__ minor-opcode: CARD16
-
-
- This event is reported to a client using a graphics context
- with graphics-exposures selected and is generated when a
- graphics request that might produce GraphicsExposure events
- does not produce any. The drawable specifies the
-
-
-
- 114
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- destination used for the graphics request.
-
- The major and minor opcodes identify the graphics request
- used. For the core protocol, major-opcode is always Copy-
- Area or CopyPlane, and the minor-opcode is always zero.
-
-
- __
- | VisibilityNotify
-
- window: WINDOW
- |__ state: {Unobscured, PartiallyObscured, FullyObscured}
-
-
- This event is reported to clients selecting VisibilityChange
- on the window. In the following, the state of the window is
- calculated ignoring all of the window's subwindows. When a
- window changes state from partially or fully obscured or not
- viewable to viewable and completely unobscured, an event
- with Unobscured is generated. When a window changes state
- from viewable and completely unobscured, from viewable and
- completely obscured, or from not viewable, to viewable and
- partially obscured, an event with PartiallyObscured is gen-
- erated. When a window changes state from viewable and com-
- pletely unobscured, from viewable and partially obscured, or
- from not viewable to viewable and fully obscured, an event
- with FullyObscured is generated.
-
- VisibilityNotify events are never generated on InputOnly
- windows.
-
- All VisibilityNotify events caused by a hierarchy change are
- generated after any hierarchy event caused by that change
- (for example, UnmapNotify, MapNotify, ConfigureNotify,
- GravityNotify, CirculateNotify). Any VisibilityNotify event
- on a given window is generated before any Expose events on
- that window, but it is not required that all VisibilityNo-
- tify events on all windows be generated before all Expose
- events on all windows. The ordering of VisibilityNotify
- events with respect to FocusOut, EnterNotify, and LeaveNo-
- tify events is not constrained.
-
-
- __
- | CreateNotify
-
- parent, window: WINDOW
- x, y: INT16
- width, height, border-width: CARD16
- |__ override-redirect: BOOL
-
-
- This event is reported to clients selecting SubstructureNo-
- tify on the parent and is generated when the window is
-
-
-
- 115
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- created. The arguments are as in the CreateWindow request.
-
-
- __
- | DestroyNotify
-
- |__ event, window: WINDOW
-
-
- This event is reported to clients selecting StructureNotify
- on the window and to clients selecting SubstructureNotify on
- the parent. It is generated when the window is destroyed.
- The event is the window on which the event was generated,
- and the window is the window that is destroyed.
-
- The ordering of the DestroyNotify events is such that for
- any given window, DestroyNotify is generated on all inferi-
- ors of the window before being generated on the window
- itself. The ordering among siblings and across subhierar-
- chies is not otherwise constrained.
-
-
- __
- | UnmapNotify
-
- event, window: WINDOW
- |__ from-configure: BOOL
-
-
- This event is reported to clients selecting StructureNotify
- on the window and to clients selecting SubstructureNotify on
- the parent. It is generated when the window changes state
- from mapped to unmapped. The event is the window on which
- the event was generated, and the window is the window that
- is unmapped. The from-configure flag is True if the event
- was generated as a result of the window's parent being
- resized when the window itself had a win-gravity of Unmap.
-
-
- __
- | MapNotify
-
- event, window: WINDOW
- |__ override-redirect: BOOL
-
-
- This event is reported to clients selecting StructureNotify
- on the window and to clients selecting SubstructureNotify on
- the parent. It is generated when the window changes state
- from unmapped to mapped. The event is the window on which
- the event was generated, and the window is the window that
- is mapped. The override-redirect flag is from the window's
- attribute.
-
-
-
-
- 116
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | MapRequest
-
- |__ parent, window: WINDOW
-
-
- This event is reported to the client selecting Substructur-
- eRedirect on the parent and is generated when a MapWindow
- request is issued on an unmapped window with an override-
- redirect attribute of False.
-
-
- __
- | ReparentNotify
-
- event, window, parent: WINDOW
- x, y: INT16
- |__ override-redirect: BOOL
-
-
- This event is reported to clients selecting SubstructureNo-
- tify on either the old or the new parent and to clients
- selecting StructureNotify on the window. It is generated
- when the window is reparented. The event is the window on
- which the event was generated. The window is the window
- that has been rerooted. The parent specifies the new par-
- ent. The x and y coordinates are relative to the new par-
- ent's origin and specify the position of the upper-left
- outer corner of the window. The override-redirect flag is
- from the window's attribute.
-
-
- __
- | ConfigureNotify
-
- event, window: WINDOW
- x, y: INT16
- width, height, border-width: CARD16
- above-sibling: WINDOW or None
- |__ override-redirect: BOOL
-
-
- This event is reported to clients selecting StructureNotify
- on the window and to clients selecting SubstructureNotify on
- the parent. It is generated when a ConfigureWindow request
- actually changes the state of the window. The event is the
- window on which the event was generated, and the window is
- the window that is changed. The x and y coordinates are
- relative to the new parent's origin and specify the position
- of the upper-left outer corner of the window. The width and
- height specify the inside size, not including the border.
- If above-sibling is None, then the window is on the bottom
- of the stack with respect to siblings. Otherwise, the win-
- dow is immediately on top of the specified sibling. The
- override-redirect flag is from the window's attribute.
-
-
-
- 117
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | GravityNotify
-
- event, window: WINDOW
- |__ x, y: INT16
-
-
- This event is reported to clients selecting SubstructureNo-
- tify on the parent and to clients selecting StructureNotify
- on the window. It is generated when a window is moved
- because of a change in size of the parent. The event is the
- window on which the event was generated, and the window is
- the window that is moved. The x and y coordinates are rela-
- tive to the new parent's origin and specify the position of
- the upper-left outer corner of the window.
-
-
- __
- | ResizeRequest
-
- window: WINDOW
- |__ width, height: CARD16
-
-
- This event is reported to the client selecting ResizeRedi-
- rect on the window and is generated when a ConfigureWindow
- request by some other client on the window attempts to
- change the size of the window. The width and height are the
- requested inside size, not including the border.
-
-
- __
- | ConfigureRequest
-
- parent, window: WINDOW
- x, y: INT16
- width, height, border-width: CARD16
- sibling: WINDOW or None
- stack-mode: {Above, Below, TopIf, BottomIf, Opposite}
- |__ value-mask: BITMASK
-
-
- This event is reported to the client selecting Substructur-
- eRedirect on the parent and is generated when a Config-
- ureWindow request is issued on the window by some other
- client. The value-mask indicates which components were
- specified in the request. The value-mask and the corre-
- sponding values are reported as given in the request. The
- remaining values are filled in from the current geometry of
- the window, except in the case of sibling and stack-mode,
- which are reported as None and Above (respectively) if not
- given in the request.
-
-
-
-
-
-
- 118
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | CirculateNotify
-
- event, window: WINDOW
- |__ place: {Top, Bottom}
-
-
- This event is reported to clients selecting StructureNotify
- on the window and to clients selecting SubstructureNotify on
- the parent. It is generated when the window is actually
- restacked from a CirculateWindow request. The event is the
- window on which the event was generated, and the window is
- the window that is restacked. If place is Top, the window
- is now on top of all siblings. Otherwise, it is below all
- siblings.
-
-
- __
- | CirculateRequest
-
- parent, window: WINDOW
- |__ place: {Top, Bottom}
-
-
- This event is reported to the client selecting Substructur-
- eRedirect on the parent and is generated when a Circu-
- lateWindow request is issued on the parent and a window
- actually needs to be restacked. The window specifies the
- window to be restacked, and the place specifies what the new
- position in the stacking order should be.
-
-
- __
- | PropertyNotify
-
- window: WINDOW
- atom: ATOM
- state: {NewValue, Deleted}
- |__ time: TIMESTAMP
-
-
- This event is reported to clients selecting PropertyChange
- on the window and is generated with state NewValue when a
- property of the window is changed using ChangeProperty or
- RotateProperties, even when adding zero-length data using
- ChangeProperty and when replacing all or part of a property
- with identical data using ChangeProperty or
- RotateProperties. It is generated with state Deleted when a
- property of the window is deleted using request DeleteProp-
- erty or GetProperty. The timestamp indicates the server
- time when the property was changed.
-
-
-
-
-
-
-
- 119
-
-
-
-
-
- X Protocol X11, Release 6.4
-
- __
- | SelectionClear
-
- owner: WINDOW
- selection: ATOM
- |__ time: TIMESTAMP
-
-
- This event is reported to the current owner of a selection
- and is generated when a new owner is being defined by means
- of SetSelectionOwner. The timestamp is the last-change time
- recorded for the selection. The owner argument is the win-
- dow that was specified by the current owner in its SetSelec-
- tionOwner request.
-
-
- __
- | SelectionRequest
-
- owner: WINDOW
- selection: ATOM
- target: ATOM
- property: ATOM or None
- requestor: WINDOW
- |__ time: TIMESTAMP or CurrentTime
-
-
- This event is reported to the owner of a selection and is
- generated when a client issues a ConvertSelection request.
- The owner argument is the window that was specified in the
- SetSelectionOwner request. The remaining arguments are as
- in the ConvertSelection request.
-
- The owner should convert the selection based on the speci-
- fied target type and send a SelectionNotify back to the
- requestor. A complete specification for using selections is
- given in the X Consortium standard Inter-Client Communica-
- tion Conventions Manual.
-
-
- __
- | SelectionNotify
-
- requestor: WINDOW
- selection, target: ATOM
- property: ATOM or None
- |__ time: TIMESTAMP or CurrentTime
-
-
- This event is generated by the server in response to a Con-
- vertSelection request when there is no owner for the selec-
- tion. When there is an owner, it should be generated by the
- owner using SendEvent. The owner of a selection should send
- this event to a requestor either when a selection has been
- converted and stored as a property or when a selection
-
-
-
- 120
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- conversion could not be performed (indicated with property
- None).
-
-
- __
- | ColormapNotify
-
- window: WINDOW
- colormap: COLORMAP or None
- new: BOOL
- |__ state: {Installed, Uninstalled}
-
-
- This event is reported to clients selecting ColormapChange
- on the window. It is generated with value True for new when
- the colormap attribute of the window is changed and is gen-
- erated with value False for new when the colormap of a win-
- dow is installed or uninstalled. In either case, the state
- indicates whether the colormap is currently installed.
-
-
- __
- | MappingNotify
-
- request: {Modifier, Keyboard, Pointer}
- |__ first-keycode, count: CARD8
-
-
- This event is sent to all clients. There is no mechanism to
- express disinterest in this event. The detail indicates the
- kind of change that occurred: Modifiers for a successful
- SetModifierMapping, Keyboard for a successful
- ChangeKeyboardMapping, and Pointer for a successful
- SetPointerMapping. If the detail is Keyboard, then first-
- keycode and count indicate the range of altered keycodes.
-
-
- __
- | ClientMessage
-
- window: WINDOW
- type: ATOM
- format: {8, 16, 32}
- |__ data: LISTofINT8 or LISTofINT16 or LISTofINT32
-
-
- This event is only generated by clients using SendEvent.
- The type specifies how the data is to be interpreted by the
- receiving client; the server places no interpretation on the
- type or the data. The format specifies whether the data
- should be viewed as a list of 8-bit, 16-bit, or 32-bit quan-
- tities, so that the server can correctly byte-swap, as nec-
- essary. The data always consists of either 20 8-bit values
- or 10 16-bit values or 5 32-bit values, although particular
-
-
-
- 121
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- message types might not make use of all of these values.
-
- 12. Flow Control and Concurrency
-
- Whenever the server is writing to a given connection, it is
- permissible for the server to stop reading from that connec-
- tion (but if the writing would block, it must continue to
- service other connections). The server is not required to
- buffer more than a single request per connection at one
- time. For a given connection to the server, a client can
- block while reading from the connection but should undertake
- to read (events and errors) when writing would block. Fail-
- ure on the part of a client to obey this rule could result
- in a deadlocked connection, although deadlock is probably
- unlikely unless either the transport layer has very little
- buffering or the client attempts to send large numbers of
- requests without ever reading replies or checking for errors
- and events.
-
- Whether or not a server is implemented with internal concur-
- rency, the overall effect must be as if individual requests
- are executed to completion in some serial order, and
- requests from a given connection must be executed in deliv-
- ery order (that is, the total execution order is a shuffle
- of the individual streams). The execution of a request
- includes validating all arguments, collecting all data for
- any reply, and generating and queueing all required events.
- However, it does not include the actual transmission of the
- reply and the events. In addition, the effect of any other
- cause that can generate multiple events (for example, acti-
- vation of a grab or pointer motion) must effectively gener-
- ate and queue all required events indivisibly with respect
- to all other causes and requests. For a request from a
- given client, any events destined for that client that are
- caused by executing the request must be sent to the client
- before any reply or error is sent.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 122
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
-
-
- Appendix A
-
- KEYSYM Encoding
-
-
-
- For convenience, KEYSYM values are viewed as split into four
- bytes:
-
- o Byte 1 (for the purposes of this encoding) is the most-
- significant 5 bits (because of the 29-bit effective
- values)
-
- o Byte 2 is the next most-significant 8 bits
-
- o Byte 3 is the next most-significant 8 bits
-
- o Byte 4 is the least-significant 8 bits
-
- There are two special KEYSYM values: NoSymbol and
- VoidSymbol. They are used to indicate the absence of sym-
- bols (see section 5).
-
- -----------------------------------------------
- Byte 1 Byte 2 Byte 3 Byte 4 Name
- -----------------------------------------------
- 0 0 0 0 NoSymbol
- 0 255 255 255 VoidSymbol
- -----------------------------------------------
-
- All other standard KEYSYM values have zero values for bytes
- 1 and 2. Byte 3 indicates a character code set, and byte 4
- indicates a particular character within that set.
-
- ----------------------------------
- Byte 3 Byte 4
- ----------------------------------
- 0 Latin-1
- 1 Latin-2
- 2 Latin-3
- 3 Latin-4
- 4 Kana
- 5 Arabic
- 6 Cyrillic
- 7 Greek
- 8 Technical
- 9 Special
- 10 Publishing
- 11 APL
- 12 Hebrew
- 13 Thai
-
-
-
-
- 123
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 14 Korean
- 15 Latin-5
- 16 Latin-6
- 17 Latin-7
- 18 Latin-8
- 19 Latin-9
- 32 Currency
- 253 3270
- 254 Keyboard (XKB) Extension
- 255 Keyboard
- ----------------------------------
-
- Each character set contains gaps where codes have been
- removed that were duplicates with codes in previous charac-
- ter sets (that is, character sets with lesser byte 3 value).
-
- The 94 and 96 character code sets have been moved to occupy
- the right-hand quadrant (decimal 129 through 256), so the
- ASCII subset has a unique encoding across byte 4, which cor-
- responds to the ASCII character code. However, this cannot
- be guaranteed with future registrations and does not apply
- to all of the Keyboard set.
-
- To the best of our knowledge, the Latin, Kana, Arabic,
- Cyrillic, Greek, APL, and Hebrew sets are from the appropri-
- ate ISO and/or ECMA international standards. There are no
- Technical, Special, or Publishing international standards,
- so these sets are based on Digital Equipment Corporation
- standards.
-
- The ordering between the sets (byte 3) is essentially arbi-
- trary. National and international standards bodies were
- commencing deliberations regarding international 2-byte and
- 4-byte character sets at the time these keysyms were devel-
- oped, but we did not know of any proposed layouts.
-
- The order may be arbitrary, but it is important in dealing
- with duplicate coding. As far as possible, keysym values
- (byte 4) follow the character set encoding standards, except
- for the Greek and Cyrillic keysyms which are based on early
- draft standards. In the Latin-1 to Latin-4 sets, all dupli-
- cate glyphs occupy the same code position. However, dupli-
- cates between Greek and Technical do not occupy the same
- code position. Applications that wish to use the Latin-2,
- Latin-3, Latin-4, Greek, Cyrillic, or Technical sets may
- find it convenient to use arrays to transform the keysyms.
-
- There is a difference between European and US usage of the
- names Pilcrow, Paragraph, and Section, as follows:
-
- -----------------------------------------------------------
- US name European name code position in Latin-1
-
-
-
-
-
- 124
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------
- Section sign Paragraph sign 10/07
- Paragraph sign Pilcrow sign 11/06
- -----------------------------------------------------------
-
-
- We have adopted the US names (by accident rather than by
- design).
-
- The Keyboard set is a miscellaneous collection of commonly
- occurring keys on keyboards. Within this set, the keypad
- symbols are generally duplicates of symbols found on keys on
- the main part of the keyboard, but they are distinguished
- here because they often have a distinguishable semantics
- associated with them.
-
- Keyboards tend to be comparatively standard with respect to
- the alphanumeric keys, but they differ radically on the mis-
- cellaneous function keys. Many function keys are left over
- from early timesharing days or are designed for a specific
- application. Keyboard layouts from large manufacturers tend
- to have lots of keys for every conceivable purpose, whereas
- small workstation manufacturers often add keys that are
- solely for support of some of their unique functionality.
- There are two ways of thinking about how to define keysyms
- for such a world:
-
- o The Engraving approach
-
- o The Common approach
-
- The Engraving approach is to create a keysym for every
- unique key engraving. This is effectively taking the union
- of all key engravings on all keyboards. For example, some
- keyboards label function keys across the top as F1 through
- Fn, and others label them as PF1 through PFn. These would
- be different keys under the Engraving approach. Likewise,
- Lock would differ from Shift Lock, which is different from
- the up-arrow symbol that has the effect of changing lower-
- case to uppercase. There are lots of other aliases such as
- Del, DEL, Delete, Remove, and so forth. The Engraving
- approach makes it easy to decide if a new entry should be
- added to the keysym set: if it does not exactly match an
- existing one, then a new one is created. One estimate is
- that there would be on the order of 300-500 Keyboard keysyms
- using this approach, without counting foreign translations
- and variations.
-
- The Common approach tries to capture all of the keys present
- on an interesting number of keyboards, folding likely
- aliases into the same keysym. For example, Del, DEL, and
- Delete are all merged into a single keysym. Vendors would
- be expected to augment the keysym set (using the vendor-spe-
- cific encoding space) to include all of their unique keys
-
-
-
- 125
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- that were not included in the standard set. Each vendor
- decides which of its keys map into the standard keysyms,
- which presumably can be overridden by a user. It is more
- difficult to implement this approach, because judgment is
- required about when a sufficient set of keyboards implements
- an engraving to justify making it a keysym in the standard
- set and about which engravings should be merged into a sin-
- gle keysym. Under this scheme there are an estimated
- 100-150 keysyms.
-
- Although neither scheme is perfect or elegant, the Common
- approach has been selected because it makes it easier to
- write a portable application. Having the Delete functional-
- ity merged into a single keysym allows an application to
- implement a deletion function and expect reasonable bindings
- on a wide set of workstations. Under the Common approach,
- application writers are still free to look for and interpret
- vendor-specific keysyms, but because they are in the
- extended set, the application developer is more conscious
- that they are writing the application in a nonportable fash-
- ion.
-
- In the listings below, Code Pos is a representation of byte
- 4 of the KEYSYM value, expressed as most-significant/least-
- significant 4-bit values. The Code Pos numbers are for ref-
- erence only and do not affect the KEYSYM value. In all
- cases, the KEYSYM value is:
-
-
- byte3 * 256 + byte4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 000 032 02/00 SPACE Latin-1
- 000 033 02/01 EXCLAMATION POINT Latin-1
- 000 034 02/02 QUOTATION MARK Latin-1
- 000 035 02/03 NUMBER SIGN Latin-1
- 000 036 02/04 DOLLAR SIGN Latin-1
- 000 037 02/05 PERCENT SIGN Latin-1
- 000 038 02/06 AMPERSAND Latin-1
- 000 039 02/07 APOSTROPHE Latin-1
- 000 040 02/08 LEFT PARENTHESIS Latin-1
- 000 041 02/09 RIGHT PARENTHESIS Latin-1
- 000 042 02/10 ASTERISK Latin-1
- 000 043 02/11 PLUS SIGN Latin-1
- 000 044 02/12 COMMA Latin-1
- 000 045 02/13 MINUS SIGN Latin-1
- 000 046 02/14 FULL STOP Latin-1
- 000 047 02/15 SOLIDUS Latin-1
- 000 048 03/00 DIGIT ZERO Latin-1
-
-
-
-
- 126
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 000 049 03/01 DIGIT ONE Latin-1
- 000 050 03/02 DIGIT TWO Latin-1
- 000 051 03/03 DIGIT THREE Latin-1
- 000 052 03/04 DIGIT FOUR Latin-1
- 000 053 03/05 DIGIT FIVE Latin-1
- 000 054 03/06 DIGIT SIX Latin-1
- 000 055 03/07 DIGIT SEVEN Latin-1
- 000 056 03/08 DIGIT EIGHT Latin-1
- 000 057 03/09 DIGIT NINE Latin-1
- 000 058 03/10 COLON Latin-1
- 000 059 03/11 SEMICOLON Latin-1
- 000 060 03/12 LESS THAN SIGN Latin-1
- 000 061 03/13 EQUALS SIGN Latin-1
- 000 062 03/14 GREATER THAN SIGN Latin-1
- 000 063 03/15 QUESTION MARK Latin-1
- 000 064 04/00 COMMERCIAL AT Latin-1
- 000 065 04/01 LATIN CAPITAL LETTER A Latin-1
- 000 066 04/02 LATIN CAPITAL LETTER B Latin-1
- 000 067 04/03 LATIN CAPITAL LETTER C Latin-1
- 000 068 04/04 LATIN CAPITAL LETTER D Latin-1
- 000 069 04/05 LATIN CAPITAL LETTER E Latin-1
- 000 070 04/06 LATIN CAPITAL LETTER F Latin-1
- 000 071 04/07 LATIN CAPITAL LETTER G Latin-1
- 000 072 04/08 LATIN CAPITAL LETTER H Latin-1
- 000 073 04/09 LATIN CAPITAL LETTER I Latin-1
- 000 074 04/10 LATIN CAPITAL LETTER J Latin-1
- 000 075 04/11 LATIN CAPITAL LETTER K Latin-1
- 000 076 04/12 LATIN CAPITAL LETTER L Latin-1
- 000 077 04/13 LATIN CAPITAL LETTER M Latin-1
- 000 078 04/14 LATIN CAPITAL LETTER N Latin-1
- 000 079 04/15 LATIN CAPITAL LETTER O Latin-1
- 000 080 05/00 LATIN CAPITAL LETTER P Latin-1
- 000 081 05/01 LATIN CAPITAL LETTER Q Latin-1
- 000 082 05/02 LATIN CAPITAL LETTER R Latin-1
- 000 083 05/03 LATIN CAPITAL LETTER S Latin-1
- 000 084 05/04 LATIN CAPITAL LETTER T Latin-1
- 000 085 05/05 LATIN CAPITAL LETTER U Latin-1
- 000 086 05/06 LATIN CAPITAL LETTER V Latin-1
- 000 087 05/07 LATIN CAPITAL LETTER W Latin-1
- 000 088 05/08 LATIN CAPITAL LETTER X Latin-1
- 000 089 05/09 LATIN CAPITAL LETTER Y Latin-1
- 000 090 05/10 LATIN CAPITAL LETTER Z Latin-1
- 000 091 05/11 LEFT SQUARE BRACKET Latin-1
- 000 092 05/12 REVERSE SOLIDUS Latin-1
- 000 093 05/13 RIGHT SQUARE BRACKET Latin-1
- 000 094 05/14 CIRCUMFLEX ACCENT Latin-1
- 000 095 05/15 LOW LINE Latin-1
- 000 096 06/00 GRAVE ACCENT Latin-1
- 000 097 06/01 LATIN SMALL LETTER a Latin-1
-
-
-
-
- 127
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 000 098 06/02 LATIN SMALL LETTER b Latin-1
- 000 099 06/03 LATIN SMALL LETTER c Latin-1
- 000 100 06/04 LATIN SMALL LETTER d Latin-1
- 000 101 06/05 LATIN SMALL LETTER e Latin-1
- 000 102 06/06 LATIN SMALL LETTER f Latin-1
- 000 103 06/07 LATIN SMALL LETTER g Latin-1
- 000 104 06/08 LATIN SMALL LETTER h Latin-1
- 000 105 06/09 LATIN SMALL LETTER i Latin-1
- 000 106 06/10 LATIN SMALL LETTER j Latin-1
- 000 107 06/11 LATIN SMALL LETTER k Latin-1
- 000 108 06/12 LATIN SMALL LETTER l Latin-1
- 000 109 06/13 LATIN SMALL LETTER m Latin-1
- 000 110 06/14 LATIN SMALL LETTER n Latin-1
- 000 111 06/15 LATIN SMALL LETTER o Latin-1
- 000 112 07/00 LATIN SMALL LETTER p Latin-1
- 000 113 07/01 LATIN SMALL LETTER q Latin-1
- 000 114 07/02 LATIN SMALL LETTER r Latin-1
- 000 115 07/03 LATIN SMALL LETTER s Latin-1
- 000 116 07/04 LATIN SMALL LETTER t Latin-1
- 000 117 07/05 LATIN SMALL LETTER u Latin-1
- 000 118 07/06 LATIN SMALL LETTER v Latin-1
- 000 119 07/07 LATIN SMALL LETTER w Latin-1
- 000 120 07/08 LATIN SMALL LETTER x Latin-1
- 000 121 07/09 LATIN SMALL LETTER y Latin-1
- 000 122 07/10 LATIN SMALL LETTER z Latin-1
- 000 123 07/11 LEFT CURLY BRACKET Latin-1
- 000 124 07/12 VERTICAL LINE Latin-1
- 000 125 07/13 RIGHT CURLY BRACKET Latin-1
- 000 126 07/14 TILDE Latin-1
- 000 160 10/00 NO-BREAK SPACE Latin-1
- 000 161 10/01 INVERTED EXCLAMATION MARK Latin-1
- 000 162 10/02 CENT SIGN Latin-1
- 000 163 10/03 POUND SIGN Latin-1
- 000 164 10/04 CURRENCY SIGN Latin-1
- 000 165 10/05 YEN SIGN Latin-1
- 000 166 10/06 BROKEN VERTICAL BAR Latin-1
- 000 167 10/07 SECTION SIGN Latin-1
- 000 168 10/08 DIAERESIS Latin-1
- 000 169 10/09 COPYRIGHT SIGN Latin-1
- 000 170 10/10 FEMININE ORDINAL INDICATOR Latin-1
- 000 171 10/11 LEFT ANGLE QUOTATION MARK Latin-1
- 000 172 10/12 NOT SIGN Latin-1
- 000 173 10/13 HYPHEN Latin-1
- 000 174 10/14 REGISTERED TRADEMARK SIGN Latin-1
- 000 175 10/15 MACRON Latin-1
- 000 176 11/00 DEGREE SIGN, RING ABOVE Latin-1
- 000 177 11/01 PLUS-MINUS SIGN Latin-1
- 000 178 11/02 SUPERSCRIPT TWO Latin-1
- 000 179 11/03 SUPERSCRIPT THREE Latin-1
-
-
-
-
- 128
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 000 180 11/04 ACUTE ACCENT Latin-1
- 000 181 11/05 MICRO SIGN Latin-1
- 000 182 11/06 PARAGRAPH SIGN Latin-1
- 000 183 11/07 MIDDLE DOT Latin-1
- 000 184 11/08 CEDILLA Latin-1
- 000 185 11/09 SUPERSCRIPT ONE Latin-1
- 000 186 11/10 MASCULINE ORDINAL INDICATOR Latin-1
- 000 187 11/11 RIGHT ANGLE QUOTATION MARK Latin-1
- 000 188 11/12 VULGAR FRACTION ONE QUARTER Latin-1
- 000 189 11/13 VULGAR FRACTION ONE HALF Latin-1
- 000 190 11/14 VULGAR FRACTION THREE QUARTERS Latin-1
- 000 191 11/15 INVERTED QUESTION MARK Latin-1
- 000 192 12/00 LATIN CAPITAL LETTER A WITH GRAVE ACCENT Latin-1
- 000 193 12/01 LATIN CAPITAL LETTER A WITH ACUTE ACCENT Latin-1
- 000 194 12/02 LATIN CAPITAL LETTER A WITH CIRCUMFLEX ACCENT Latin-1
- 000 195 12/03 LATIN CAPITAL LETTER A WITH TILDE Latin-1
- 000 196 12/04 LATIN CAPITAL LETTER A WITH DIAERESIS Latin-1
- 000 197 12/05 LATIN CAPITAL LETTER A WITH RING ABOVE Latin-1
- 000 198 12/06 LATIN CAPITAL DIPHTHONG AE Latin-1
- 000 199 12/07 LATIN CAPITAL LETTER C WITH CEDILLA Latin-1
- 000 200 12/08 LATIN CAPITAL LETTER E WITH GRAVE ACCENT Latin-1
- 000 201 12/09 LATIN CAPITAL LETTER E WITH ACUTE ACCENT Latin-1
- 000 202 12/10 LATIN CAPITAL LETTER E WITH CIRCUMFLEX ACCENT Latin-1
- 000 203 12/11 LATIN CAPITAL LETTER E WITH DIAERESIS Latin-1
- 000 204 12/12 LATIN CAPITAL LETTER I WITH GRAVE ACCENT Latin-1
- 000 205 12/13 LATIN CAPITAL LETTER I WITH ACUTE ACCENT Latin-1
- 000 206 12/14 LATIN CAPITAL LETTER I WITH CIRCUMFLEX ACCENT Latin-1
- 000 207 12/15 LATIN CAPITAL LETTER I WITH DIAERESIS Latin-1
- 000 208 13/00 ICELANDIC CAPITAL LETTER ETH Latin-1
- 000 209 13/01 LATIN CAPITAL LETTER N WITH TILDE Latin-1
- 000 210 13/02 LATIN CAPITAL LETTER O WITH GRAVE ACCENT Latin-1
- 000 211 13/03 LATIN CAPITAL LETTER O WITH ACUTE ACCENT Latin-1
- 000 212 13/04 LATIN CAPITAL LETTER O WITH CIRCUMFLEX ACCENT Latin-1
- 000 213 13/05 LATIN CAPITAL LETTER O WITH TILDE Latin-1
- 000 214 13/06 LATIN CAPITAL LETTER O WITH DIAERESIS Latin-1
- 000 215 13/07 MULTIPLICATION SIGN Latin-1
- 000 216 13/08 LATIN CAPITAL LETTER O WITH OBLIQUE STROKE Latin-1
- 000 217 13/09 LATIN CAPITAL LETTER U WITH GRAVE ACCENT Latin-1
- 000 218 13/10 LATIN CAPITAL LETTER U WITH ACUTE ACCENT Latin-1
- 000 219 13/11 LATIN CAPITAL LETTER U WITH CIRCUMFLEX ACCENT Latin-1
- 000 220 13/12 LATIN CAPITAL LETTER U WITH DIAERESIS Latin-1
- 000 221 13/13 LATIN CAPITAL LETTER Y WITH ACUTE ACCENT Latin-1
- 000 222 13/14 ICELANDIC CAPITAL LETTER THORN Latin-1
- 000 223 13/15 GERMAN SMALL LETTER SHARP s Latin-1
- 000 224 14/00 LATIN SMALL LETTER a WITH GRAVE ACCENT Latin-1
- 000 225 14/01 LATIN SMALL LETTER a WITH ACUTE ACCENT Latin-1
- 000 226 14/02 LATIN SMALL LETTER a WITH CIRCUMFLEX ACCENT Latin-1
- 000 227 14/03 LATIN SMALL LETTER a WITH TILDE Latin-1
- 000 228 14/04 LATIN SMALL LETTER a WITH DIAERESIS Latin-1
-
-
-
-
- 129
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 000 229 14/05 LATIN SMALL LETTER a WITH RING ABOVE Latin-1
- 000 230 14/06 LATIN SMALL DIPHTHONG ae Latin-1
- 000 231 14/07 LATIN SMALL LETTER c WITH CEDILLA Latin-1
- 000 232 14/08 LATIN SMALL LETTER e WITH GRAVE ACCENT Latin-1
- 000 233 14/09 LATIN SMALL LETTER e WITH ACUTE ACCENT Latin-1
- 000 234 14/10 LATIN SMALL LETTER e WITH CIRCUMFLEX ACCENT Latin-1
- 000 235 14/11 LATIN SMALL LETTER e WITH DIAERESIS Latin-1
- 000 236 14/12 LATIN SMALL LETTER i WITH GRAVE ACCENT Latin-1
- 000 237 14/13 LATIN SMALL LETTER i WITH ACUTE ACCENT Latin-1
- 000 238 14/14 LATIN SMALL LETTER i WITH CIRCUMFLEX ACCENT Latin-1
- 000 239 14/15 LATIN SMALL LETTER i WITH DIAERESIS Latin-1
- 000 240 15/00 ICELANDIC SMALL LETTER ETH Latin-1
- 000 241 15/01 LATIN SMALL LETTER n WITH TILDE Latin-1
- 000 242 15/02 LATIN SMALL LETTER o WITH GRAVE ACCENT Latin-1
- 000 243 15/03 LATIN SMALL LETTER o WITH ACUTE ACCENT Latin-1
- 000 244 15/04 LATIN SMALL LETTER o WITH CIRCUMFLEX ACCENT Latin-1
- 000 245 15/05 LATIN SMALL LETTER o WITH TILDE Latin-1
- 000 246 15/06 LATIN SMALL LETTER o WITH DIAERESIS Latin-1
- 000 247 15/07 DIVISION SIGN Latin-1
- 000 248 15/08 LATIN SMALL LETTER o WITH OBLIQUE STROKE Latin-1
- 000 249 15/09 LATIN SMALL LETTER u WITH GRAVE ACCENT Latin-1
- 000 250 15/10 LATIN SMALL LETTER u WITH ACUTE ACCENT Latin-1
- 000 251 15/11 LATIN SMALL LETTER u WITH CIRCUMFLEX ACCENT Latin-1
- 000 252 15/12 LATIN SMALL LETTER u WITH DIAERESIS Latin-1
- 000 253 15/13 LATIN SMALL LETTER y WITH ACUTE ACCENT Latin-1
- 000 254 15/14 ICELANDIC SMALL LETTER THORN Latin-1
- 000 255 15/15 LATIN SMALL LETTER y WITH DIAERESIS Latin-1
-
-
- 001 161 10/01 LATIN CAPITAL LETTER A WITH OGONEK Latin-2
- 001 162 10/02 BREVE Latin-2
- 001 163 10/03 LATIN CAPITAL LETTER L WITH STROKE Latin-2
- 001 165 10/05 LATIN CAPITAL LETTER L WITH CARON Latin-2
- 001 166 10/06 LATIN CAPITAL LETTER S WITH ACUTE ACCENT Latin-2
- 001 169 10/09 LATIN CAPITAL LETTER S WITH CARON Latin-2
- 001 170 10/10 LATIN CAPITAL LETTER S WITH CEDILLA Latin-2
- 001 171 10/11 LATIN CAPITAL LETTER T WITH CARON Latin-2
- 001 172 10/12 LATIN CAPITAL LETTER Z WITH ACUTE ACCENT Latin-2
- 001 174 10/14 LATIN CAPITAL LETTER Z WITH CARON Latin-2
- 001 175 10/15 LATIN CAPITAL LETTER Z WITH DOT ABOVE Latin-2
- 001 177 11/01 LATIN SMALL LETTER a WITH OGONEK Latin-2
- 001 178 11/02 OGONEK Latin-2
- 001 179 11/03 LATIN SMALL LETTER l WITH STROKE Latin-2
- 001 181 11/05 LATIN SMALL LETTER l WITH CARON Latin-2
- 001 182 11/06 LATIN SMALL LETTER s WITH ACUTE ACCENT Latin-2
- 001 183 11/07 CARON Latin-2
- 001 185 11/09 LATIN SMALL LETTER s WITH CARON Latin-2
- 001 186 11/10 LATIN SMALL LETTER s WITH CEDILLA Latin-2
- 001 187 11/11 LATIN SMALL LETTER t WITH CARON Latin-2
-
-
-
-
- 130
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 001 188 11/12 LATIN SMALL LETTER z WITH ACUTE ACCENT Latin-2
- 001 189 11/13 DOUBLE ACUTE ACCENT Latin-2
- 001 190 11/14 LATIN SMALL LETTER z WITH CARON Latin-2
- 001 191 11/15 LATIN SMALL LETTER z WITH DOT ABOVE Latin-2
- 001 192 12/00 LATIN CAPITAL LETTER R WITH ACUTE ACCENT Latin-2
- 001 195 12/03 LATIN CAPITAL LETTER A WITH BREVE Latin-2
- 001 197 12/05 LATIN CAPITAL LETTER L WITH ACUTE ACCENT Latin-2
- 001 198 12/06 LATIN CAPITAL LETTER C WITH ACUTE ACCENT Latin-2
- 001 200 12/08 LATIN CAPITAL LETTER C WITH CARON Latin-2
- 001 202 12/10 LATIN CAPITAL LETTER E WITH OGONEK Latin-2
- 001 204 12/12 LATIN CAPITAL LETTER E WITH CARON Latin-2
- 001 207 12/15 LATIN CAPITAL LETTER D WITH CARON Latin-2
- 001 208 13/00 LATIN CAPITAL LETTER D WITH STROKE Latin-2
- 001 209 13/01 LATIN CAPITAL LETTER N WITH ACUTE ACCENT Latin-2
- 001 210 13/02 LATIN CAPITAL LETTER N WITH CARON Latin-2
- 001 213 13/05 LATIN CAPITAL LETTER O WITH DOUBLE ACUTE ACCENT Latin-2
- 001 216 13/08 LATIN CAPITAL LETTER R WITH CARON Latin-2
- 001 217 13/09 LATIN CAPITAL LETTER U WITH RING ABOVE Latin-2
- 001 219 13/11 LATIN CAPITAL LETTER U WITH DOUBLE ACUTE ACCENT Latin-2
- 001 222 13/14 LATIN CAPITAL LETTER T WITH CEDILLA Latin-2
- 001 224 14/00 LATIN SMALL LETTER r WITH ACUTE ACCENT Latin-2
- 001 227 14/03 LATIN SMALL LETTER a WITH BREVE Latin-2
- 001 229 14/05 LATIN SMALL LETTER l WITH ACUTE ACCENT Latin-2
- 001 230 14/06 LATIN SMALL LETTER c WITH ACUTE ACCENT Latin-2
- 001 232 14/08 LATIN SMALL LETTER c WITH CARON Latin-2
- 001 234 14/10 LATIN SMALL LETTER e WITH OGONEK Latin-2
- 001 236 14/12 LATIN SMALL LETTER e WITH CARON Latin-2
- 001 239 14/15 LATIN SMALL LETTER d WITH CARON Latin-2
- 001 240 15/00 LATIN SMALL LETTER d WITH STROKE Latin-2
- 001 241 15/01 LATIN SMALL LETTER n WITH ACUTE ACCENT Latin-2
- 001 242 15/02 LATIN SMALL LETTER n WITH CARON Latin-2
- 001 245 15/05 LATIN SMALL LETTER o WITH DOUBLE ACUTE ACCENT Latin-2
- 001 248 15/08 LATIN SMALL LETTER r WITH CARON Latin-2
- 001 249 15/09 LATIN SMALL LETTER u WITH RING ABOVE Latin-2
- 001 251 15/11 LATIN SMALL LETTER u WITH DOUBLE ACUTE ACCENT Latin-2
- 001 254 15/14 LATIN SMALL LETTER t WITH CEDILLA Latin-2
- 001 255 15/15 DOT ABOVE Latin-2
-
-
- 002 161 10/01 LATIN CAPITAL LETTER H WITH STROKE Latin-3
- 002 166 10/06 LATIN CAPITAL LETTER H WITH CIRCUMFLEX ACCENT Latin-3
- 002 169 10/09 LATIN CAPITAL LETTER I WITH DOT ABOVE Latin-3
- 002 171 10/11 LATIN CAPITAL LETTER G WITH BREVE Latin-3
- 002 172 10/12 LATIN CAPITAL LETTER J WITH CIRCUMFLEX ACCENT Latin-3
- 002 177 11/01 LATIN SMALL LETTER h WITH STROKE Latin-3
- 002 182 11/06 LATIN SMALL LETTER h WITH CIRCUMFLEX ACCENT Latin-3
- 002 185 11/09 SMALL DOTLESS LETTER i Latin-3
- 002 187 11/11 LATIN SMALL LETTER g WITH BREVE Latin-3
- 002 188 11/12 LATIN SMALL LETTER j WITH CIRCUMFLEX ACCENT Latin-3
-
-
-
-
- 131
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 002 197 12/05 LATIN CAPITAL LETTER C WITH DOT ABOVE Latin-3
- 002 198 12/06 LATIN CAPITAL LETTER C WITH CIRCUMFLEX ACCENT Latin-3
- 002 213 13/05 LATIN CAPITAL LETTER G WITH DOT ABOVE Latin-3
- 002 216 13/08 LATIN CAPITAL LETTER G WITH CIRCUMFLEX ACCENT Latin-3
- 002 221 13/13 LATIN CAPITAL LETTER U WITH BREVE Latin-3
- 002 222 13/14 LATIN CAPITAL LETTER S WITH CIRCUMFLEX ACCENT Latin-3
- 002 229 14/05 LATIN SMALL LETTER c WITH DOT ABOVE Latin-3
- 002 230 14/06 LATIN SMALL LETTER c WITH CIRCUMFLEX ACCENT Latin-3
- 002 245 15/05 LATIN SMALL LETTER g WITH DOT ABOVE Latin-3
- 002 248 15/08 LATIN SMALL LETTER g WITH CIRCUMFLEX ACCENT Latin-3
- 002 253 15/13 LATIN SMALL LETTER u WITH BREVE Latin-3
- 002 254 15/14 LATIN SMALL LETTER s WITH CIRCUMFLEX ACCENT Latin-3
-
-
- 003 162 10/02 SMALL GREENLANDIC LETTER KRA Latin-4
- 003 163 10/03 LATIN CAPITAL LETTER R WITH CEDILLA Latin-4
- 003 165 10/05 LATIN CAPITAL LETTER I WITH TILDE Latin-4
- 003 166 10/06 LATIN CAPITAL LETTER L WITH CEDILLA Latin-4
- 003 170 10/10 LATIN CAPITAL LETTER E WITH MACRON Latin-4
- 003 171 10/11 LATIN CAPITAL LETTER G WITH CEDILLA Latin-4
- 003 172 10/12 LATIN CAPITAL LETTER T WITH OBLIQUE STROKE Latin-4
- 003 179 11/03 LATIN SMALL LETTER r WITH CEDILLA Latin-4
- 003 181 11/05 LATIN SMALL LETTER i WITH TILDE Latin-4
- 003 182 11/06 LATIN SMALL LETTER l WITH CEDILLA Latin-4
- 003 186 11/10 LATIN SMALL LETTER e WITH MACRON Latin-4
- 003 187 11/11 LATIN SMALL LETTER g WITH CEDILLA ABOVE Latin-4
- 003 188 11/12 LATIN SMALL LETTER t WITH OBLIQUE STROKE Latin-4
- 003 189 11/13 LAPPISH CAPITAL LETTER ENG Latin-4
- 003 191 11/15 LAPPISH SMALL LETTER ENG Latin-4
- 003 192 12/00 LATIN CAPITAL LETTER A WITH MACRON Latin-4
- 003 199 12/07 LATIN CAPITAL LETTER I WITH OGONEK Latin-4
- 003 204 12/12 LATIN CAPITAL LETTER E WITH DOT ABOVE Latin-4
- 003 207 12/15 LATIN CAPITAL LETTER I WITH MACRON Latin-4
- 003 209 13/01 LATIN CAPITAL LETTER N WITH CEDILLA Latin-4
- 003 210 13/02 LATIN CAPITAL LETTER O WITH MACRON Latin-4
- 003 211 13/03 LATIN CAPITAL LETTER K WITH CEDILLA Latin-4
- 003 217 13/09 LATIN CAPITAL LETTER U WITH OGONEK Latin-4
- 003 221 13/13 LATIN CAPITAL LETTER U WITH TILDE Latin-4
- 003 222 13/14 LATIN CAPITAL LETTER U WITH MACRON Latin-4
- 003 224 14/00 LATIN SMALL LETTER a WITH MACRON Latin-4
- 003 231 14/07 LATIN SMALL LETTER i WITH OGONEK Latin-4
- 003 236 14/12 LATIN SMALL LETTER e WITH DOT ABOVE Latin-4
- 003 239 14/15 LATIN SMALL LETTER i WITH MACRON Latin-4
- 003 241 15/01 LATIN SMALL LETTER n WITH CEDILLA Latin-4
- 003 242 15/02 LATIN SMALL LETTER o WITH MACRON Latin-4
- 003 243 15/03 LATIN SMALL LETTER k WITH CEDILLA Latin-4
- 003 249 15/09 LATIN SMALL LETTER u WITH OGONEK Latin-4
- 003 253 15/13 LATIN SMALL LETTER u WITH TILDE Latin-4
- 003 254 15/14 LATIN SMALL LETTER u WITH MACRON Latin-4
-
-
-
-
- 132
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 004 126 07/14 OVERLINE Kana
- 004 161 10/01 KANA FULL STOP Kana
- 004 162 10/02 KANA OPENING BRACKET Kana
- 004 163 10/03 KANA CLOSING BRACKET Kana
- 004 164 10/04 KANA COMMA Kana
- 004 165 10/05 KANA CONJUNCTIVE Kana
- 004 166 10/06 KANA LETTER WO Kana
- 004 167 10/07 KANA LETTER SMALL A Kana
- 004 168 10/08 KANA LETTER SMALL I Kana
- 004 169 10/09 KANA LETTER SMALL U Kana
- 004 170 10/10 KANA LETTER SMALL E Kana
- 004 171 10/11 KANA LETTER SMALL O Kana
- 004 172 10/12 KANA LETTER SMALL YA Kana
- 004 173 10/13 KANA LETTER SMALL YU Kana
- 004 174 10/14 KANA LETTER SMALL YO Kana
- 004 175 10/15 KANA LETTER SMALL TSU Kana
- 004 176 11/00 PROLONGED SOUND SYMBOL Kana
- 004 177 11/01 KANA LETTER A Kana
- 004 178 11/02 KANA LETTER I Kana
- 004 179 11/03 KANA LETTER U Kana
- 004 180 11/04 KANA LETTER E Kana
- 004 181 11/05 KANA LETTER O Kana
- 004 182 11/06 KANA LETTER KA Kana
- 004 183 11/07 KANA LETTER KI Kana
- 004 184 11/08 KANA LETTER KU Kana
- 004 185 11/09 KANA LETTER KE Kana
- 004 186 11/10 KANA LETTER KO Kana
- 004 187 11/11 KANA LETTER SA Kana
- 004 188 11/12 KANA LETTER SHI Kana
- 004 189 11/13 KANA LETTER SU Kana
- 004 190 11/14 KANA LETTER SE Kana
- 004 191 11/15 KANA LETTER SO Kana
- 004 192 12/00 KANA LETTER TA Kana
- 004 193 12/01 KANA LETTER CHI Kana
- 004 194 12/02 KANA LETTER TSU Kana
- 004 195 12/03 KANA LETTER TE Kana
- 004 196 12/04 KANA LETTER TO Kana
- 004 197 12/05 KANA LETTER NA Kana
- 004 198 12/06 KANA LETTER NI Kana
- 004 199 12/07 KANA LETTER NU Kana
- 004 200 12/08 KANA LETTER NE Kana
- 004 201 12/09 KANA LETTER NO Kana
- 004 202 12/10 KANA LETTER HA Kana
- 004 203 12/11 KANA LETTER HI Kana
- 004 204 12/12 KANA LETTER FU Kana
- 004 205 12/13 KANA LETTER HE Kana
- 004 206 12/14 KANA LETTER HO Kana
- 004 207 12/15 KANA LETTER MA Kana
- 004 208 13/00 KANA LETTER MI Kana
-
-
-
-
- 133
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 004 209 13/01 KANA LETTER MU Kana
- 004 210 13/02 KANA LETTER ME Kana
- 004 211 13/03 KANA LETTER MO Kana
- 004 212 13/04 KANA LETTER YA Kana
- 004 213 13/05 KANA LETTER YU Kana
- 004 214 13/06 KANA LETTER YO Kana
- 004 215 13/07 KANA LETTER RA Kana
- 004 216 13/08 KANA LETTER RI Kana
- 004 217 13/09 KANA LETTER RU Kana
- 004 218 13/10 KANA LETTER RE Kana
- 004 219 13/11 KANA LETTER RO Kana
- 004 220 13/12 KANA LETTER WA Kana
- 004 221 13/13 KANA LETTER N Kana
- 004 222 13/14 VOICED SOUND SYMBOL Kana
- 004 223 13/15 SEMIVOICED SOUND SYMBOL Kana
-
-
- 005 172 10/12 ARABIC COMMA Arabic
- 005 187 11/11 ARABIC SEMICOLON Arabic
- 005 191 11/15 ARABIC QUESTION MARK Arabic
- 005 193 12/01 ARABIC LETTER HAMZA Arabic
- 005 194 12/02 ARABIC LETTER MADDA ON ALEF Arabic
- 005 195 12/03 ARABIC LETTER HAMZA ON ALEF Arabic
- 005 196 12/04 ARABIC LETTER HAMZA ON WAW Arabic
- 005 197 12/05 ARABIC LETTER HAMZA UNDER ALEF Arabic
- 005 198 12/06 ARABIC LETTER HAMZA ON YEH Arabic
- 005 199 12/07 ARABIC LETTER ALEF Arabic
- 005 200 12/08 ARABIC LETTER BEH Arabic
- 005 201 12/09 ARABIC LETTER TEH MARBUTA Arabic
- 005 202 12/10 ARABIC LETTER TEH Arabic
- 005 203 12/11 ARABIC LETTER THEH Arabic
- 005 204 12/12 ARABIC LETTER JEEM Arabic
- 005 205 12/13 ARABIC LETTER HAH Arabic
- 005 206 12/14 ARABIC LETTER KHAH Arabic
- 005 207 12/15 ARABIC LETTER DAL Arabic
- 005 208 13/00 ARABIC LETTER THAL Arabic
- 005 209 13/01 ARABIC LETTER RA Arabic
- 005 210 13/02 ARABIC LETTER ZAIN Arabic
- 005 211 13/03 ARABIC LETTER SEEN Arabic
- 005 212 13/04 ARABIC LETTER SHEEN Arabic
- 005 213 13/05 ARABIC LETTER SAD Arabic
- 005 214 13/06 ARABIC LETTER DAD Arabic
- 005 215 13/07 ARABIC LETTER TAH Arabic
- 005 216 13/08 ARABIC LETTER ZAH Arabic
- 005 217 13/09 ARABIC LETTER AIN Arabic
- 005 218 13/10 ARABIC LETTER GHAIN Arabic
- 005 224 14/00 ARABIC LETTER TATWEEL Arabic
- 005 225 14/01 ARABIC LETTER FEH Arabic
- 005 226 14/02 ARABIC LETTER QAF Arabic
-
-
-
-
- 134
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 005 227 14/03 ARABIC LETTER KAF Arabic
- 005 228 14/04 ARABIC LETTER LAM Arabic
- 005 229 14/05 ARABIC LETTER MEEM Arabic
- 005 230 14/06 ARABIC LETTER NOON Arabic
- 005 231 14/07 ARABIC LETTER HA Arabic
- 005 232 14/08 ARABIC LETTER WAW Arabic
- 005 233 14/09 ARABIC LETTER ALEF MAKSURA Arabic
- 005 234 14/10 ARABIC LETTER YEH Arabic
- 005 235 14/11 ARABIC LETTER FATHATAN Arabic
- 005 236 14/12 ARABIC LETTER DAMMATAN Arabic
- 005 237 14/13 ARABIC LETTER KASRATAN Arabic
- 005 238 14/14 ARABIC LETTER FATHA Arabic
- 005 239 14/15 ARABIC LETTER DAMMA Arabic
- 005 240 15/00 ARABIC LETTER KASRA Arabic
- 005 241 15/01 ARABIC LETTER SHADDA Arabic
- 005 242 15/02 ARABIC LETTER SUKUN Arabic
-
-
- 006 161 10/01 SERBOCROATION CYRILLIC SMALL LETTER DJE Cyrillic
- 006 162 10/02 MACEDONIAN CYRILLIC SMALL LETTER GJE Cyrillic
- 006 163 10/03 CYRILLIC SMALL LETTER IO Cyrillic
- 006 164 10/04 UKRAINIAN CYRILLIC SMALL LETTER IE Cyrillic
- 006 165 10/05 MACEDONIAN SMALL LETTER DSE Cyrillic
- 006 166 10/06 BYELORUSSIAN/UKRAINIAN CYRILLIC SMALL LETTER I Cyrillic
- 006 167 10/07 UKRAINIAN SMALL LETTER YI Cyrillic
- 006 168 10/08 CYRILLIC SMALL LETTER JE Cyrillic
- 006 169 10/09 CYRILLIC SMALL LETTER LJE Cyrillic
- 006 170 10/10 CYRILLIC SMALL LETTER NJE Cyrillic
- 006 171 10/11 SERBIAN SMALL LETTER TSHE Cyrillic
- 006 172 10/12 MACEDONIAN CYRILLIC SMALL LETTER KJE Cyrillic
- 006 174 10/14 BYELORUSSIAN SMALL LETTER SHORT U Cyrillic
- 006 175 10/15 CYRILLIC SMALL LETTER DZHE Cyrillic
- 006 176 11/00 NUMERO SIGN Cyrillic
- 006 177 11/01 SERBOCROATIAN CYRILLIC CAPITAL LETTER DJE Cyrillic
- 006 178 11/02 MACEDONIAN CYRILLIC CAPITAL LETTER GJE Cyrillic
- 006 179 11/03 CYRILLIC CAPITAL LETTER IO Cyrillic
- 006 180 11/04 UKRAINIAN CYRILLIC CAPITAL LETTER IE Cyrillic
- 006 181 11/05 MACEDONIAN CAPITAL LETTER DSE Cyrillic
- 006 182 11/06 BYELORUSSIAN/UKRAINIAN CYRILLIC CAPITAL LETTER I Cyrillic
- 006 183 11/07 UKRAINIAN CAPITAL LETTER YI Cyrillic
- 006 184 11/08 CYRILLIC CAPITAL LETTER JE Cyrillic
- 006 185 11/09 CYRILLIC CAPITAL LETTER LJE Cyrillic
- 006 186 11/10 CYRILLIC CAPITAL LETTER NJE Cyrillic
- 006 187 11/11 SERBIAN CAPITAL LETTER TSHE Cyrillic
- 006 188 11/12 MACEDONIAN CYRILLIC CAPITAL LETTER KJE Cyrillic
- 006 190 11/14 BYELORUSSIAN CAPITAL LETTER SHORT U Cyrillic
- 006 191 11/15 CYRILLIC CAPITAL LETTER DZHE Cyrillic
- 006 192 12/00 CYRILLIC SMALL LETTER YU Cyrillic
- 006 193 12/01 CYRILLIC SMALL LETTER A Cyrillic
-
-
-
-
- 135
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 006 194 12/02 CYRILLIC SMALL LETTER BE Cyrillic
- 006 195 12/03 CYRILLIC SMALL LETTER TSE Cyrillic
- 006 196 12/04 CYRILLIC SMALL LETTER DE Cyrillic
- 006 197 12/05 CYRILLIC SMALL LETTER IE Cyrillic
- 006 198 12/06 CYRILLIC SMALL LETTER EF Cyrillic
- 006 199 12/07 CYRILLIC SMALL LETTER GHE Cyrillic
- 006 200 12/08 CYRILLIC SMALL LETTER HA Cyrillic
- 006 201 12/09 CYRILLIC SMALL LETTER I Cyrillic
- 006 202 12/10 CYRILLIC SMALL LETTER SHORT I Cyrillic
- 006 203 12/11 CYRILLIC SMALL LETTER KA Cyrillic
- 006 204 12/12 CYRILLIC SMALL LETTER EL Cyrillic
- 006 205 12/13 CYRILLIC SMALL LETTER EM Cyrillic
- 006 206 12/14 CYRILLIC SMALL LETTER EN Cyrillic
- 006 207 12/15 CYRILLIC SMALL LETTER O Cyrillic
- 006 208 13/00 CYRILLIC SMALL LETTER PE Cyrillic
- 006 209 13/01 CYRILLIC SMALL LETTER YA Cyrillic
- 006 210 13/02 CYRILLIC SMALL LETTER ER Cyrillic
- 006 211 13/03 CYRILLIC SMALL LETTER ES Cyrillic
- 006 212 13/04 CYRILLIC SMALL LETTER TE Cyrillic
- 006 213 13/05 CYRILLIC SMALL LETTER U Cyrillic
- 006 214 13/06 CYRILLIC SMALL LETTER ZHE Cyrillic
- 006 215 13/07 CYRILLIC SMALL LETTER VE Cyrillic
- 006 216 13/08 CYRILLIC SMALL SOFT SIGN Cyrillic
- 006 217 13/09 CYRILLIC SMALL LETTER YERU Cyrillic
- 006 218 13/10 CYRILLIC SMALL LETTER ZE Cyrillic
- 006 219 13/11 CYRILLIC SMALL LETTER SHA Cyrillic
- 006 220 13/12 CYRILLIC SMALL LETTER E Cyrillic
- 006 221 13/13 CYRILLIC SMALL LETTER SHCHA Cyrillic
- 006 222 13/14 CYRILLIC SMALL LETTER CHE Cyrillic
- 006 223 13/15 CYRILLIC SMALL HARD SIGN Cyrillic
- 006 224 14/00 CYRILLIC CAPITAL LETTER YU Cyrillic
- 006 225 14/01 CYRILLIC CAPITAL LETTER A Cyrillic
- 006 226 14/02 CYRILLIC CAPITAL LETTER BE Cyrillic
- 006 227 14/03 CYRILLIC CAPITAL LETTER TSE Cyrillic
- 006 228 14/04 CYRILLIC CAPITAL LETTER DE Cyrillic
- 006 229 14/05 CYRILLIC CAPITAL LETTER IE Cyrillic
- 006 230 14/06 CYRILLIC CAPITAL LETTER EF Cyrillic
- 006 231 14/07 CYRILLIC CAPITAL LETTER GHE Cyrillic
- 006 232 14/08 CYRILLIC CAPITAL LETTER HA Cyrillic
- 006 233 14/09 CYRILLIC CAPITAL LETTER I Cyrillic
- 006 234 14/10 CYRILLIC CAPITAL LETTER SHORT I Cyrillic
- 006 235 14/11 CYRILLIC CAPITAL LETTER KA Cyrillic
- 006 236 14/12 CYRILLIC CAPITAL LETTER EL Cyrillic
- 006 237 14/13 CYRILLIC CAPITAL LETTER EM Cyrillic
- 006 238 14/14 CYRILLIC CAPITAL LETTER EN Cyrillic
- 006 239 14/15 CYRILLIC CAPITAL LETTER O Cyrillic
- 006 240 15/00 CYRILLIC CAPITAL LETTER PE Cyrillic
- 006 241 15/01 CYRILLIC CAPITAL LETTER YA Cyrillic
- 006 242 15/02 CYRILLIC CAPITAL LETTER ER Cyrillic
-
-
-
-
- 136
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 006 243 15/03 CYRILLIC CAPITAL LETTER ES Cyrillic
- 006 244 15/04 CYRILLIC CAPITAL LETTER TE Cyrillic
- 006 245 15/05 CYRILLIC CAPITAL LETTER U Cyrillic
- 006 246 15/06 CYRILLIC CAPITAL LETTER ZHE Cyrillic
- 006 247 15/07 CYRILLIC CAPITAL LETTER VE Cyrillic
- 006 248 15/08 CYRILLIC CAPITAL SOFT SIGN Cyrillic
- 006 249 15/09 CYRILLIC CAPITAL LETTER YERU Cyrillic
- 006 250 15/10 CYRILLIC CAPITAL LETTER ZE Cyrillic
- 006 251 15/11 CYRILLIC CAPITAL LETTER SHA Cyrillic
- 006 252 15/12 CYRILLIC CAPITAL LETTER E Cyrillic
- 006 253 15/13 CYRILLIC CAPITAL LETTER SHCHA Cyrillic
- 006 254 15/14 CYRILLIC CAPITAL LETTER CHE Cyrillic
- 006 255 15/15 CYRILLIC CAPITAL HARD SIGN Cyrillic
-
-
- 007 161 10/01 GREEK CAPITAL LETTER ALPHA WITH ACCENT Greek
- 007 162 10/02 GREEK CAPITAL LETTER EPSILON WITH ACCENT Greek
- 007 163 10/03 GREEK CAPITAL LETTER ETA WITH ACCENT Greek
- 007 164 10/04 GREEK CAPITAL LETTER IOTA WITH ACCENT Greek
- 007 165 10/05 GREEK CAPITAL LETTER IOTA WITH DIAERESIS Greek
- 007 167 10/07 GREEK CAPITAL LETTER OMICRON WITH ACCENT Greek
- 007 168 10/08 GREEK CAPITAL LETTER UPSILON WITH ACCENT Greek
- 007 169 10/09 GREEK CAPITAL LETTER UPSILON WITH DIAERESIS Greek
- 007 171 10/11 GREEK CAPITAL LETTER OMEGA WITH ACCENT Greek
- 007 174 10/14 DIAERESIS AND ACCENT Greek
- 007 175 10/15 HORIZONTAL BAR Greek
- 007 177 11/01 GREEK SMALL LETTER ALPHA WITH ACCENT Greek
- 007 178 11/02 GREEK SMALL LETTER EPSILON WITH ACCENT Greek
- 007 179 11/03 GREEK SMALL LETTER ETA WITH ACCENT Greek
- 007 180 11/04 GREEK SMALL LETTER IOTA WITH ACCENT Greek
- 007 181 11/05 GREEK SMALL LETTER IOTA WITH DIAERESIS Greek
- 007 182 11/06 GREEK SMALL LETTER IOTA WITH ACCENT+DIAERESIS Greek
- 007 183 11/07 GREEK SMALL LETTER OMICRON WITH ACCENT Greek
- 007 184 11/08 GREEK SMALL LETTER UPSILON WITH ACCENT Greek
- 007 185 11/09 GREEK SMALL LETTER UPSILON WITH DIAERESIS Greek
- 007 186 11/10 GREEK SMALL LETTER UPSILON WITH ACCENT+DIAERESIS Greek
- 007 187 11/11 GREEK SMALL LETTER OMEGA WITH ACCENT Greek
- 007 193 12/01 GREEK CAPITAL LETTER ALPHA Greek
- 007 194 12/02 GREEK CAPITAL LETTER BETA Greek
- 007 195 12/03 GREEK CAPITAL LETTER GAMMA Greek
- 007 196 12/04 GREEK CAPITAL LETTER DELTA Greek
- 007 197 12/05 GREEK CAPITAL LETTER EPSILON Greek
- 007 198 12/06 GREEK CAPITAL LETTER ZETA Greek
- 007 199 12/07 GREEK CAPITAL LETTER ETA Greek
- 007 200 12/08 GREEK CAPITAL LETTER THETA Greek
- 007 201 12/09 GREEK CAPITAL LETTER IOTA Greek
- 007 202 12/10 GREEK CAPITAL LETTER KAPPA Greek
- 007 203 12/11 GREEK CAPITAL LETTER LAMDA Greek
- 007 204 12/12 GREEK CAPITAL LETTER MU Greek
-
-
-
-
- 137
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 007 205 12/13 GREEK CAPITAL LETTER NU Greek
- 007 206 12/14 GREEK CAPITAL LETTER XI Greek
- 007 207 12/15 GREEK CAPITAL LETTER OMICRON Greek
- 007 208 13/00 GREEK CAPITAL LETTER PI Greek
- 007 209 13/01 GREEK CAPITAL LETTER RHO Greek
- 007 210 13/02 GREEK CAPITAL LETTER SIGMA Greek
- 007 212 13/04 GREEK CAPITAL LETTER TAU Greek
- 007 213 13/05 GREEK CAPITAL LETTER UPSILON Greek
- 007 214 13/06 GREEK CAPITAL LETTER PHI Greek
- 007 215 13/07 GREEK CAPITAL LETTER CHI Greek
- 007 216 13/08 GREEK CAPITAL LETTER PSI Greek
- 007 217 13/09 GREEK CAPITAL LETTER OMEGA Greek
- 007 225 14/01 GREEK SMALL LETTER ALPHA Greek
- 007 226 14/02 GREEK SMALL LETTER BETA Greek
- 007 227 14/03 GREEK SMALL LETTER GAMMA Greek
- 007 228 14/04 GREEK SMALL LETTER DELTA Greek
- 007 229 14/05 GREEK SMALL LETTER EPSILON Greek
- 007 230 14/06 GREEK SMALL LETTER ZETA Greek
- 007 231 14/07 GREEK SMALL LETTER ETA Greek
- 007 232 14/08 GREEK SMALL LETTER THETA Greek
- 007 233 14/09 GREEK SMALL LETTER IOTA Greek
- 007 234 14/10 GREEK SMALL LETTER KAPPA Greek
- 007 235 14/11 GREEK SMALL LETTER LAMDA Greek
- 007 236 14/12 GREEK SMALL LETTER MU Greek
- 007 237 14/13 GREEK SMALL LETTER NU Greek
- 007 238 14/14 GREEK SMALL LETTER XI Greek
- 007 239 14/15 GREEK SMALL LETTER OMICRON Greek
- 007 240 15/00 GREEK SMALL LETTER PI Greek
- 007 241 15/01 GREEK SMALL LETTER RHO Greek
- 007 242 15/02 GREEK SMALL LETTER SIGMA Greek
- 007 243 15/03 GREEK SMALL LETTER FINAL SMALL SIGMA Greek
- 007 244 15/04 GREEK SMALL LETTER TAU Greek
- 007 245 15/05 GREEK SMALL LETTER UPSILON Greek
- 007 246 15/06 GREEK SMALL LETTER PHI Greek
- 007 247 15/07 GREEK SMALL LETTER CHI Greek
- 007 248 15/08 GREEK SMALL LETTER PSI Greek
- 007 249 15/09 GREEK SMALL LETTER OMEGA Greek
-
-
- 008 161 10/01 LEFT RADICAL Technical
- 008 162 10/02 TOP LEFT RADICAL Technical
- 008 163 10/03 HORIZONTAL CONNECTOR Technical
- 008 164 10/04 TOP INTEGRAL Technical
- 008 165 10/05 BOTTOM INTEGRAL Technical
- 008 166 10/06 VERTICAL CONNECTOR Technical
- 008 167 10/07 TOP LEFT SQUARE BRACKET Technical
- 008 168 10/08 BOTTOM LEFT SQUARE BRACKET Technical
- 008 169 10/09 TOP RIGHT SQUARE BRACKET Technical
- 008 170 10/10 BOTTOM RIGHT SQUARE BRACKET Technical
-
-
-
-
- 138
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 008 171 10/11 TOP LEFT PARENTHESIS Technical
- 008 172 10/12 BOTTOM LEFT PARENTHESIS Technical
- 008 173 10/13 TOP RIGHT PARENTHESIS Technical
- 008 174 10/14 BOTTOM RIGHT PARENTHESIS Technical
- 008 175 10/15 LEFT MIDDLE CURLY BRACE Technical
- 008 176 11/00 RIGHT MIDDLE CURLY BRACE Technical
- 008 177 11/01 TOP LEFT SUMMATION Technical
- 008 178 11/02 BOTTOM LEFT SUMMATION Technical
- 008 179 11/03 TOP VERTICAL SUMMATION CONNECTOR Technical
- 008 180 11/04 BOTTOM VERTICAL SUMMATION CONNECTOR Technical
- 008 181 11/05 TOP RIGHT SUMMATION Technical
- 008 182 11/06 BOTTOM RIGHT SUMMATION Technical
- 008 183 11/07 RIGHT MIDDLE SUMMATION Technical
- 008 188 11/12 LESS THAN OR EQUAL SIGN Technical
- 008 189 11/13 NOT EQUAL SIGN Technical
- 008 190 11/14 GREATER THAN OR EQUAL SIGN Technical
- 008 191 11/15 INTEGRAL Technical
- 008 192 12/00 THEREFORE Technical
- 008 193 12/01 VARIATION, PROPORTIONAL TO Technical
- 008 194 12/02 INFINITY Technical
- 008 197 12/05 NABLA, DEL Technical
- 008 200 12/08 IS APPROXIMATE TO Technical
- 008 201 12/09 SIMILAR OR EQUAL TO Technical
- 008 205 12/13 IF AND ONLY IF Technical
- 008 206 12/14 IMPLIES Technical
- 008 207 12/15 IDENTICAL TO Technical
- 008 214 13/06 RADICAL Technical
- 008 218 13/10 IS INCLUDED IN Technical
- 008 219 13/11 INCLUDES Technical
- 008 220 13/12 INTERSECTION Technical
- 008 221 13/13 UNION Technical
- 008 222 13/14 LOGICAL AND Technical
- 008 223 13/15 LOGICAL OR Technical
- 008 239 14/15 PARTIAL DERIVATIVE Technical
- 008 246 15/06 FUNCTION Technical
- 008 251 15/11 LEFT ARROW Technical
- 008 252 15/12 UPWARD ARROW Technical
- 008 253 15/13 RIGHT ARROW Technical
- 008 254 15/14 DOWNWARD ARROW Technical
-
-
- 009 223 13/15 BLANK Special
- 009 224 14/00 SOLID DIAMOND Special
- 009 225 14/01 CHECKERBOARD Special
- 009 226 14/02 ``HT'' Special
- 009 227 14/03 ``FF'' Special
- 009 228 14/04 ``CR'' Special
- 009 229 14/05 ``LF'' Special
- 009 232 14/08 ``NL'' Special
-
-
-
-
- 139
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 009 233 14/09 ``VT'' Special
- 009 234 14/10 LOWER-RIGHT CORNER Special
- 009 235 14/11 UPPER-RIGHT CORNER Special
- 009 236 14/12 UPPER-LEFT CORNER Special
- 009 237 14/13 LOWER-LEFT CORNER Special
- 009 238 14/14 CROSSING-LINES Special
- 009 239 14/15 HORIZONTAL LINE, SCAN 1 Special
- 009 240 15/00 HORIZONTAL LINE, SCAN 3 Special
- 009 241 15/01 HORIZONTAL LINE, SCAN 5 Special
- 009 242 15/02 HORIZONTAL LINE, SCAN 7 Special
- 009 243 15/03 HORIZONTAL LINE, SCAN 9 Special
- 009 244 15/04 LEFT ``T'' Special
- 009 245 15/05 RIGHT ``T'' Special
- 009 246 15/06 BOTTOM ``T'' Special
- 009 247 15/07 TOP ``T'' Special
- 009 248 15/08 VERTICAL BAR Special
-
-
- 010 161 10/01 EM SPACE Publish
- 010 162 10/02 EN SPACE Publish
- 010 163 10/03 3/EM SPACE Publish
- 010 164 10/04 4/EM SPACE Publish
- 010 165 10/05 DIGIT SPACE Publish
- 010 166 10/06 PUNCTUATION SPACE Publish
- 010 167 10/07 THIN SPACE Publish
- 010 168 10/08 HAIR SPACE Publish
- 010 169 10/09 EM DASH Publish
- 010 170 10/10 EN DASH Publish
- 010 172 10/12 SIGNIFICANT BLANK SYMBOL Publish
- 010 174 10/14 ELLIPSIS Publish
- 010 175 10/15 DOUBLE BASELINE DOT Publish
- 010 176 11/00 VULGAR FRACTION ONE THIRD Publish
- 010 177 11/01 VULGAR FRACTION TWO THIRDS Publish
- 010 178 11/02 VULGAR FRACTION ONE FIFTH Publish
- 010 179 11/03 VULGAR FRACTION TWO FIFTHS Publish
- 010 180 11/04 VULGAR FRACTION THREE FIFTHS Publish
- 010 181 11/05 VULGAR FRACTION FOUR FIFTHS Publish
- 010 182 11/06 VULGAR FRACTION ONE SIXTH Publish
- 010 183 11/07 VULGAR FRACTION FIVE SIXTHS Publish
- 010 184 11/08 CARE OF Publish
- 010 187 11/11 FIGURE DASH Publish
- 010 188 11/12 LEFT ANGLE BRACKET Publish
- 010 189 11/13 DECIMAL POINT Publish
- 010 190 11/14 RIGHT ANGLE BRACKET Publish
- 010 191 11/15 MARKER Publish
- 010 195 12/03 VULGAR FRACTION ONE EIGHTH Publish
- 010 196 12/04 VULGAR FRACTION THREE EIGHTHS Publish
- 010 197 12/05 VULGAR FRACTION FIVE EIGHTHS Publish
- 010 198 12/06 VULGAR FRACTION SEVEN EIGHTHS Publish
-
-
-
-
- 140
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 010 201 12/09 TRADEMARK SIGN Publish
- 010 202 12/10 SIGNATURE MARK Publish
- 010 203 12/11 TRADEMARK SIGN IN CIRCLE Publish
- 010 204 12/12 LEFT OPEN TRIANGLE Publish
- 010 205 12/13 RIGHT OPEN TRIANGLE Publish
- 010 206 12/14 EM OPEN CIRCLE Publish
- 010 207 12/15 EM OPEN RECTANGLE Publish
- 010 208 13/00 LEFT SINGLE QUOTATION MARK Publish
- 010 209 13/01 RIGHT SINGLE QUOTATION MARK Publish
- 010 210 13/02 LEFT DOUBLE QUOTATION MARK Publish
- 010 211 13/03 RIGHT DOUBLE QUOTATION MARK Publish
- 010 212 13/04 PRESCRIPTION, TAKE, RECIPE Publish
- 010 214 13/06 MINUTES Publish
- 010 215 13/07 SECONDS Publish
- 010 217 13/09 LATIN CROSS Publish
- 010 218 13/10 HEXAGRAM Publish
- 010 219 13/11 FILLED RECTANGLE BULLET Publish
- 010 220 13/12 FILLED LEFT TRIANGLE BULLET Publish
- 010 221 13/13 FILLED RIGHT TRIANGLE BULLET Publish
- 010 222 13/14 EM FILLED CIRCLE Publish
- 010 223 13/15 EM FILLED RECTANGLE Publish
- 010 224 14/00 EN OPEN CIRCLE BULLET Publish
- 010 225 14/01 EN OPEN SQUARE BULLET Publish
- 010 226 14/02 OPEN RECTANGULAR BULLET Publish
- 010 227 14/03 OPEN TRIANGULAR BULLET UP Publish
- 010 228 14/04 OPEN TRIANGULAR BULLET DOWN Publish
- 010 229 14/05 OPEN STAR Publish
- 010 230 14/06 EN FILLED CIRCLE BULLET Publish
- 010 231 14/07 EN FILLED SQUARE BULLET Publish
- 010 232 14/08 FILLED TRIANGULAR BULLET UP Publish
- 010 233 14/09 FILLED TRIANGULAR BULLET DOWN Publish
- 010 234 14/10 LEFT POINTER Publish
- 010 235 14/11 RIGHT POINTER Publish
- 010 236 14/12 CLUB Publish
- 010 237 14/13 DIAMOND Publish
- 010 238 14/14 HEART Publish
- 010 240 15/00 MALTESE CROSS Publish
- 010 241 15/01 DAGGER Publish
- 010 242 15/02 DOUBLE DAGGER Publish
- 010 243 15/03 CHECK MARK, TICK Publish
- 010 244 15/04 BALLOT CROSS Publish
- 010 245 15/05 MUSICAL SHARP Publish
- 010 246 15/06 MUSICAL FLAT Publish
- 010 247 15/07 MALE SYMBOL Publish
- 010 248 15/08 FEMALE SYMBOL Publish
- 010 249 15/09 TELEPHONE SYMBOL Publish
- 010 250 15/10 TELEPHONE RECORDER SYMBOL Publish
- 010 251 15/11 PHONOGRAPH COPYRIGHT SIGN Publish
- 010 252 15/12 CARET Publish
-
-
-
-
- 141
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 010 253 15/13 SINGLE LOW QUOTATION MARK Publish
- 010 254 15/14 DOUBLE LOW QUOTATION MARK Publish
- 010 255 15/15 CURSOR Publish
-
-
- 011 163 10/03 LEFT CARET APL
- 011 166 10/06 RIGHT CARET APL
- 011 168 10/08 DOWN CARET APL
- 011 169 10/09 UP CARET APL
- 011 192 12/00 OVERBAR APL
- 011 194 12/02 DOWN TACK APL
- 011 195 12/03 UP SHOE (CAP) APL
- 011 196 12/04 DOWN STILE APL
- 011 198 12/06 UNDERBAR APL
- 011 202 12/10 JOT APL
- 011 204 12/12 QUAD APL
- 011 206 12/14 UP TACK APL
- 011 207 12/15 CIRCLE APL
- 011 211 13/03 UP STILE APL
- 011 214 13/06 DOWN SHOE (CUP) APL
- 011 216 13/08 RIGHT SHOE APL
- 011 218 13/10 LEFT SHOE APL
- 011 220 13/12 LEFT TACK APL
- 011 252 15/12 RIGHT TACK APL
-
-
- 012 223 13/15 DOUBLE LOW LINE Hebrew
- 012 224 14/00 HEBREW LETTER ALEPH Hebrew
- 012 225 14/01 HEBREW LETTER BET Hebrew
- 012 226 14/02 HEBREW LETTER GIMEL Hebrew
- 012 227 14/03 HEBREW LETTER DALET Hebrew
- 012 228 14/04 HEBREW LETTER HE Hebrew
- 012 229 14/05 HEBREW LETTER WAW Hebrew
- 012 230 14/06 HEBREW LETTER ZAIN Hebrew
- 012 231 14/07 HEBREW LETTER CHET Hebrew
- 012 232 14/08 HEBREW LETTER TET Hebrew
- 012 233 14/09 HEBREW LETTER YOD Hebrew
- 012 234 14/10 HEBREW LETTER FINAL KAPH Hebrew
- 012 235 14/11 HEBREW LETTER KAPH Hebrew
- 012 236 14/12 HEBREW LETTER LAMED Hebrew
- 012 237 14/13 HEBREW LETTER FINAL MEM Hebrew
- 012 238 14/14 HEBREW LETTER MEM Hebrew
- 012 239 14/15 HEBREW LETTER FINAL NUN Hebrew
- 012 240 15/00 HEBREW LETTER NUN Hebrew
- 012 241 15/01 HEBREW LETTER SAMECH Hebrew
- 012 242 15/02 HEBREW LETTER A'YIN Hebrew
- 012 243 15/03 HEBREW LETTER FINAL PE Hebrew
- 012 244 15/04 HEBREW LETTER PE Hebrew
- 012 245 15/05 HEBREW LETTER FINAL ZADE Hebrew
-
-
-
-
- 142
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 012 246 15/06 HEBREW LETTER ZADE Hebrew
- 012 247 15/07 HEBREW QOPH Hebrew
- 012 248 15/08 HEBREW RESH Hebrew
- 012 249 15/09 HEBREW SHIN Hebrew
- 012 250 15/10 HEBREW TAW Hebrew
-
-
- 013 161 10/01 THAI KOKAI Thai
- 013 162 10/02 THAI KHOKHAI Thai
- 013 163 10/03 THAI KHOKHUAT Thai
- 013 164 10/04 THAI KHOKHWAI Thai
- 013 165 10/05 THAI KHOKHON Thai
- 013 166 10/06 THAI KHORAKHANG Thai
- 013 167 10/07 THAI NGONGU Thai
- 013 168 10/08 THAI CHOCHAN Thai
- 013 169 10/09 THAI CHOCHING Thai
- 013 170 10/10 THAI CHOCHANG Thai
- 013 171 10/11 THAI SOSO Thai
- 013 172 10/12 THAI CHOCHOE Thai
- 013 173 10/13 THAI YOYING Thai
- 013 174 10/14 THAI DOCHADA Thai
- 013 175 10/15 THAI TOPATAK Thai
- 013 176 11/00 THAI THOTHAN Thai
- 013 177 11/01 THAI THONANGMONTHO Thai
- 013 178 11/02 THAI THOPHUTHAO Thai
- 013 179 11/03 THAI NONEN Thai
- 013 180 11/04 THAI DODEK Thai
- 013 181 11/05 THAI TOTAO Thai
- 013 182 11/06 THAI THOTHUNG Thai
- 013 183 11/07 THAI THOTHAHAN Thai
- 013 184 11/08 THAI THOTHONG Thai
- 013 185 11/09 THAI NONU Thai
- 013 186 11/10 THAI BOBAIMAI Thai
- 013 187 11/11 THAI POPLA Thai
- 013 188 11/12 THAI PHOPHUNG Thai
- 013 189 11/13 THAI FOFA Thai
- 013 190 11/14 THAI PHOPHAN Thai
- 013 191 11/15 THAI FOFAN Thai
- 013 192 12/00 THAI PHOSAMPHAO Thai
- 013 193 12/01 THAI MOMA Thai
- 013 194 12/02 THAI YOYAK Thai
- 013 195 12/03 THAI RORUA Thai
- 013 196 12/04 THAI RU Thai
- 013 197 12/05 THAI LOLING Thai
- 013 198 12/06 THAI LU Thai
- 013 199 12/07 THAI WOWAEN Thai
- 013 200 12/08 THAI SOSALA Thai
- 013 201 12/09 THAI SORUSI Thai
- 013 202 12/10 THAI SOSUA Thai
-
-
-
-
- 143
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 013 203 12/11 THAI HOHIP Thai
- 013 204 12/12 THAI LOCHULA Thai
- 013 205 12/13 THAI OANG Thai
- 013 206 12/14 THAI HONOKHUK Thai
- 013 207 12/15 THAI PAIYANNOI Thai
- 013 208 13/00 THAI SARAA Thai
- 013 209 13/01 THAI MAIHANAKAT Thai
- 013 210 13/02 THAI SARAAA Thai
- 013 211 13/03 THAI SARAAM Thai
- 013 212 13/04 THAI SARAI Thai
- 013 213 13/05 THAI SARAII Thai
- 013 214 13/06 THAI SARAUE Thai
- 013 215 13/07 THAI SARAUEE Thai
- 013 216 13/08 THAI SARAU Thai
- 013 217 13/09 THAI SARAUU Thai
- 013 218 13/10 THAI PHINTHU Thai
- 013 222 13/14 THAI MAIHANAKAT Thai
- 013 223 13/15 THAI BAHT Thai
- 013 224 14/00 THAI SARAE Thai
- 013 225 14/01 THAI SARAAE Thai
- 013 226 14/02 THAI SARAO Thai
- 013 227 14/03 THAI SARAAIMAIMUAN Thai
- 013 228 14/04 THAI SARAAIMAIMALAI Thai
- 013 229 14/05 THAI LAKKHANGYAO Thai
- 013 230 14/06 THAI MAIYAMOK Thai
- 013 231 14/07 THAI MAITAIKHU Thai
- 013 232 14/08 THAI MAIEK Thai
- 013 233 14/09 THAI MAITHO Thai
- 013 234 14/10 THAI MAITRI Thai
- 013 235 14/11 THAI MAICHATTAWA Thai
- 013 236 14/12 THAI THANTHAKHAT Thai
- 013 237 14/13 THAI NIKHAHIT Thai
- 013 240 15/00 THAI LEKSUN Thai
- 013 241 15/01 THAI LEKNUNG Thai
- 013 242 15/02 THAI LEKSONG Thai
- 013 243 15/03 THAI LEKSAM Thai
- 013 244 15/04 THAI LEKSI Thai
- 013 245 15/05 THAI LEKHA Thai
- 013 246 15/06 THAI LEKHOK Thai
- 013 247 15/07 THAI LEKCHET Thai
- 013 248 15/08 THAI LEKPAET Thai
- 013 249 15/09 THAI LEKKAO Thai
-
-
- 014 161 10/01 HANGUL KIYEOG Korean
- 014 162 10/02 HANGUL SSANG KIYEOG Korean
- 014 163 10/03 HANGUL KIYEOG SIOS Korean
- 014 164 10/04 HANGUL NIEUN Korean
- 014 165 10/05 HANGUL NIEUN JIEUJ Korean
-
-
-
-
- 144
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 014 166 10/06 HANGUL NIEUN HIEUH Korean
- 014 167 10/07 HANGUL DIKEUD Korean
- 014 168 10/08 HANGUL SSANG DIKEUD Korean
- 014 169 10/09 HANGUL RIEUL Korean
- 014 170 10/10 HANGUL RIEUL KIYEOG Korean
- 014 171 10/11 HANGUL RIEUL MIEUM Korean
- 014 172 10/12 HANGUL RIEUL PIEUB Korean
- 014 173 10/13 HANGUL RIEUL SIOS Korean
- 014 174 10/14 HANGUL RIEUL TIEUT Korean
- 014 175 10/15 HANGUL RIEUL PHIEUF Korean
- 014 176 11/00 HANGUL RIEUL HIEUH Korean
- 014 177 11/01 HANGUL MIEUM Korean
- 014 178 11/02 HANGUL PIEUB Korean
- 014 179 11/03 HANGUL SSANG PIEUB Korean
- 014 180 11/04 HANGUL PIEUB SIOS Korean
- 014 181 11/05 HANGUL SIOS Korean
- 014 182 11/06 HANGUL SSANG SIOS Korean
- 014 183 11/07 HANGUL IEUNG Korean
- 014 184 11/08 HANGUL JIEUJ Korean
- 014 185 11/09 HANGUL SSANG JIEUJ Korean
- 014 186 11/10 HANGUL CIEUC Korean
- 014 187 11/11 HANGUL KHIEUQ Korean
- 014 188 11/12 HANGUL TIEUT Korean
- 014 189 11/13 HANGUL PHIEUF Korean
- 014 190 11/14 HANGUL HIEUH Korean
- 014 191 11/15 HANGUL A Korean
- 014 192 12/00 HANGUL AE Korean
- 014 193 12/01 HANGUL YA Korean
- 014 194 12/02 HANGUL YAE Korean
- 014 195 12/03 HANGUL EO Korean
- 014 196 12/04 HANGUL E Korean
- 014 197 12/05 HANGUL YEO Korean
- 014 198 12/06 HANGUL YE Korean
- 014 199 12/07 HANGUL O Korean
- 014 200 12/08 HANGUL WA Korean
- 014 201 12/09 HANGUL WAE Korean
- 014 202 12/10 HANGUL OE Korean
- 014 203 12/11 HANGUL YO Korean
- 014 204 12/12 HANGUL U Korean
- 014 205 12/13 HANGUL WEO Korean
- 014 206 12/14 HANGUL WE Korean
- 014 207 12/15 HANGUL WI Korean
- 014 208 13/00 HANGUL YU Korean
- 014 209 13/01 HANGUL EU Korean
- 014 210 13/02 HANGUL YI Korean
- 014 211 13/03 HANGUL I Korean
- 014 212 13/04 HANGUL JONG SEONG KIYEOG Korean
- 014 213 13/05 HANGUL JONG SEONG SSANG KIYEOG Korean
- 014 214 13/06 HANGUL JONG SEONG KIYEOG SIOS Korean
-
-
-
-
- 145
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 014 215 13/07 HANGUL JONG SEONG NIEUN Korean
- 014 216 13/08 HANGUL JONG SEONG NIEUN JIEUJ Korean
- 014 217 13/09 HANGUL JONG SEONG NIEUN HIEUH Korean
- 014 218 13/10 HANGUL JONG SEONG DIKEUD Korean
- 014 219 13/11 HANGUL JONG SEONG RIEUL Korean
- 014 220 13/12 HANGUL JONG SEONG RIEUL KIYEOG Korean
- 014 221 13/13 HANGUL JONG SEONG RIEUL MIEUM Korean
- 014 222 13/14 HANGUL JONG SEONG RIEUL PIEUB Korean
- 014 223 13/15 HANGUL JONG SEONG RIEUL SIOS Korean
- 014 224 14/00 HANGUL JONG SEONG RIEUL TIEUT Korean
- 014 225 14/01 HANGUL JONG SEONG RIEUL PHIEUF Korean
- 014 226 14/02 HANGUL JONG SEONG RIEUL HIEUH Korean
- 014 227 14/03 HANGUL JONG SEONG MIEUM Korean
- 014 228 14/04 HANGUL JONG SEONG PIEUB Korean
- 014 229 14/05 HANGUL JONG SEONG PIEUB SIOS Korean
- 014 230 14/06 HANGUL JONG SEONG SIOS Korean
- 014 231 14/07 HANGUL JONG SEONG SSANG SIOS Korean
- 014 232 14/08 HANGUL JONG SEONG IEUNG Korean
- 014 233 14/09 HANGUL JONG SEONG JIEUJ Korean
- 014 234 14/10 HANGUL JONG SEONG CIEUC Korean
- 014 235 14/11 HANGUL JONG SEONG KHIEUQ Korean
- 014 236 14/12 HANGUL JONG SEONG TIEUT Korean
- 014 237 14/13 HANGUL JONG SEONG PHIEUF Korean
- 014 238 14/14 HANGUL JONG SEONG HIEUH Korean
- 014 239 14/15 HANGUL RIEUL YEORIN HIEUH Korean
- 014 240 15/00 HANGUL SUNKYEONGEUM MIEUM Korean
- 014 241 15/01 HANGUL SUNKYEONGEUM PIEUB Korean
- 014 242 15/02 HANGUL PAN SIOS Korean
- 014 243 15/03 HANGUL KKOGJI DALRIN IEUNG Korean
- 014 244 15/04 HANGUL SUNKYEONGEUM PHIEUF Korean
- 014 245 15/05 HANGUL YEORIN HIEUH Korean
- 014 246 15/06 HANGUL ARAE A Korean
- 014 247 15/07 HANGUL ARAE AE Korean
- 014 248 15/08 HANGUL JONG SEONG PAN SIOS Korean
- 014 249 15/09 HANGUL JONG SEONG KKOGJI DALRIN IEUNG Korean
- 014 250 15/10 HANGUL JONG SEONG YEORIN HIEUH Korean
- 014 255 15/15 KOREAN WON Korean
-
-
- 019 188 11/12 LATIN CAPITAL DIPHTHONG OE Latin-9
- 019 189 11/13 LATIN SMALL DIPHTHONG oe Latin-9
- 019 190 11/14 LATIN CAPITAL LETTER Y WITH DIAERESIS Latin-9
-
-
- 032 160 10/00 CURRENCY ECU SIGN Currency
- 032 161 10/01 CURRENCY COLON SIGN Currency
- 032 162 10/02 CURRENCY CRUZEIRO SIGN Currency
- 032 163 10/03 CURRENCY FRENCH FRANC SIGN Currency
- 032 164 10/04 CURRENCY LIRA SIGN Currency
-
-
-
-
- 146
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 032 165 10/05 CURRENCY MILL SIGN Currency
- 032 166 10/06 CURRENCY NAIRA SIGN Currency
- 032 167 10/07 CURRENCY PESETA SIGN Currency
- 032 168 10/08 CURRENCY RUPEE SIGN Currency
- 032 169 10/09 CURRENCY WON SIGN Currency
- 032 170 10/10 CURRENCY NEW SHEQEL SIGN Currency
- 032 171 10/11 CURRENCY DONG SIGN Currency
- 032 172 10/12 CURRENCY EURO SIGN Currency
-
-
- 253 001 00/01 3270 DUPLICATE 3270
- 253 002 00/02 3270 FIELDMARK 3270
- 253 003 00/03 3270 RIGHT2 3270
- 253 004 00/04 3270 LEFT2 3270
- 253 005 00/05 3270 BACKTAB 3270
- 253 006 00/06 3270 ERASEEOF 3270
- 253 007 00/07 3270 ERASEINPUT 3270
- 253 008 00/08 3270 RESET 3270
- 253 009 00/09 3270 QUIT 3270
- 253 010 00/10 3270 PA1 3270
- 253 011 00/11 3270 PA2 3270
- 253 012 00/12 3270 PA3 3270
- 253 013 00/13 3270 TEST 3270
- 253 014 00/14 3270 ATTN 3270
- 253 015 00/15 3270 CURSORBLINK 3270
- 253 016 01/01 3270 ALTCURSOR 3270
- 253 017 01/02 3270 KEYCLICK 3270
- 253 018 01/03 3270 JUMP 3270
- 253 019 01/04 3270 IDENT 3270
- 253 020 01/05 3270 RULE 3270
- 253 021 01/06 3270 COPY 3270
- 253 022 01/07 3270 PLAY 3270
- 253 023 01/08 3270 SETUP 3270
- 253 024 01/09 3270 RECORD 3270
- 253 025 01/10 3270 CHANGESCREEN 3270
- 253 026 01/11 3270 DELETEWORD 3270
- 253 027 01/12 3270 EXSELECT 3270
- 253 028 01/13 3270 CURSORSELECT 3270
- 253 029 01/14 3270 PRINTSCREEN 3270
- 253 030 01/15 3270 ENTER 3270
-
-
- 255 008 00/08 BACKSPACE, BACK SPACE, BACK CHAR Keyboard
- 255 009 00/09 TAB Keyboard
- 255 010 00/10 LINEFEED, LF Keyboard
- 255 011 00/11 CLEAR Keyboard
- 255 013 00/13 RETURN, ENTER Keyboard
- 255 019 01/03 PAUSE, HOLD Keyboard
- 255 020 01/04 SCROLL LOCK Keyboard
-
-
-
-
- 147
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 255 021 01/05 SYS REQ, SYSTEM REQUEST Keyboard
- 255 027 01/11 ESCAPE Keyboard
- 255 032 02/00 MULTI-KEY CHARACTER PREFACE Keyboard
- 255 033 02/01 KANJI, KANJI CONVERT Keyboard
- 255 034 02/02 MUHENKAN Keyboard
- 255 035 02/03 HENKAN MODE Keyboard
- 255 036 02/04 ROMAJI Keyboard
- 255 037 02/05 HIRAGANA Keyboard
- 255 038 02/06 KATAKANA Keyboard
- 255 039 02/07 HIRAGANA/KATAKANA TOGGLE Keyboard
- 255 040 02/08 ZENKAKU Keyboard
- 255 041 02/09 HANKAKU Keyboard
- 255 042 02/10 ZENKAKU/HANKAKU TOGGLE Keyboard
- 255 043 02/11 TOUROKU Keyboard
- 255 044 02/12 MASSYO Keyboard
- 255 045 02/13 KANA LOCK Keyboard
- 255 046 02/14 KANA SHIFT Keyboard
- 255 047 02/15 EISU SHIFT Keyboard
- 255 048 03/00 EISU TOGGLE Keyboard
- 255 049 03/01 HANGUL START/STOP (TOGGLE) Keyboard
- 255 050 03/02 HANGUL START Keyboard
- 255 051 03/03 HANGUL END, ENGLISH START Keyboard
- 255 052 03/04 START HANGUL/HANJA CONVERSION Keyboard
- 255 053 03/05 HANGUL JAMO MODE Keyboard
- 255 054 03/06 HANGUL ROMAJA MODE Keyboard
- 255 055 03/07 HANGUL CODE INPUT Keyboard
- 255 056 03/08 HANGUL JEONJA MODE Keyboard
- 255 057 03/09 HANGUL BANJA MODE Keyboard
- 255 058 03/10 HANGUL PREHANJA CONVERSION Keyboard
- 255 059 03/11 HANGUL POSTHANJA CONVERSION Keyboard
- 255 060 03/12 HANGUL SINGLE CANDIDATE Keyboard
- 255 061 03/13 HANGUL MULTIPLE CANDIDATE Keyboard
- 255 062 03/14 HANGUL PREVIOUS CANDIDATE Keyboard
- 255 063 03/15 HANGUL SPECIAL SYMBOLS Keyboard
- 255 080 05/00 HOME Keyboard
- 255 081 05/01 LEFT, MOVE LEFT, LEFT ARROW Keyboard
- 255 082 05/02 UP, MOVE UP, UP ARROW Keyboard
- 255 083 05/03 RIGHT, MOVE RIGHT, RIGHT ARROW Keyboard
- 255 084 05/04 DOWN, MOVE DOWN, DOWN ARROW Keyboard
- 255 085 05/05 PRIOR, PREVIOUS, PAGE UP Keyboard
- 255 086 05/06 NEXT, PAGE DOWN Keyboard
- 255 087 05/07 END, EOL Keyboard
- 255 088 05/08 BEGIN, BOL Keyboard
- 255 096 06/00 SELECT, MARK Keyboard
- 255 097 06/01 PRINT Keyboard
- 255 098 06/02 EXECUTE, RUN, DO Keyboard
- 255 099 06/03 INSERT, INSERT HERE Keyboard
- 255 101 06/05 UNDO, OOPS Keyboard
- 255 102 06/06 REDO, AGAIN Keyboard
-
-
-
-
- 148
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 255 103 06/07 MENU Keyboard
- 255 104 06/08 FIND, SEARCH Keyboard
- 255 105 06/09 CANCEL, STOP, ABORT, EXIT Keyboard
- 255 106 06/10 HELP Keyboard
- 255 107 06/11 BREAK Keyboard
- 255 126 07/14 MODE SWITCH, SCRIPT SWITCH, CHARACTER SET SWITCH Keyboard
- 255 127 07/15 NUM LOCK Keyboard
- 255 128 08/00 KEYPAD SPACE Keyboard
- 255 137 08/09 KEYPAD TAB Keyboard
- 255 141 08/13 KEYPAD ENTER Keyboard
- 255 145 09/01 KEYPAD F1, PF1, A Keyboard
- 255 146 09/02 KEYPAD F2, PF2, B Keyboard
- 255 147 09/03 KEYPAD F3, PF3, C Keyboard
- 255 148 09/04 KEYPAD F4, PF4, D Keyboard
- 255 149 09/05 KEYPAD HOME Keyboard
- 255 150 09/06 KEYPAD LEFT Keyboard
- 255 151 09/07 KEYPAD UP Keyboard
- 255 152 09/08 KEYPAD RIGHT Keyboard
- 255 153 09/09 KEYPAD DOWN Keyboard
- 255 154 09/10 KEYPAD PRIOR, PAGE UP Keyboard
- 255 155 09/11 KEYPAD NEXT, PAGE DOWN Keyboard
- 255 156 09/12 KEYPAD END Keyboard
- 255 157 09/13 KEYPAD BEGIN Keyboard
- 255 158 09/14 KEYPAD INSERT Keyboard
- 255 159 09/15 KEYPAD DELETE Keyboard
- 255 170 10/10 KEYPAD MULTIPLICATION SIGN, ASTERISK Keyboard
- 255 171 10/11 KEYPAD PLUS SIGN Keyboard
- 255 172 10/12 KEYPAD SEPARATOR, COMMA Keyboard
- 255 173 10/13 KEYPAD MINUS SIGN, HYPHEN Keyboard
- 255 174 10/14 KEYPAD DECIMAL POINT, FULL STOP Keyboard
- 255 175 10/15 KEYPAD DIVISION SIGN, SOLIDUS Keyboard
- 255 176 11/00 KEYPAD DIGIT ZERO Keyboard
- 255 177 11/01 KEYPAD DIGIT ONE Keyboard
- 255 178 11/02 KEYPAD DIGIT TWO Keyboard
- 255 179 11/03 KEYPAD DIGIT THREE Keyboard
- 255 180 11/04 KEYPAD DIGIT FOUR Keyboard
- 255 181 11/05 KEYPAD DIGIT FIVE Keyboard
- 255 182 11/06 KEYPAD DIGIT SIX Keyboard
- 255 183 11/07 KEYPAD DIGIT SEVEN Keyboard
- 255 184 11/08 KEYPAD DIGIT EIGHT Keyboard
- 255 185 11/09 KEYPAD DIGIT NINE Keyboard
- 255 189 11/13 KEYPAD EQUALS SIGN Keyboard
- 255 190 11/14 F1 Keyboard
- 255 191 11/15 F2 Keyboard
- 255 192 12/00 F3 Keyboard
- 255 193 12/01 F4 Keyboard
- 255 194 12/02 F5 Keyboard
- 255 195 12/03 F6 Keyboard
- 255 196 12/04 F7 Keyboard
-
-
-
-
- 149
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- -----------------------------------------------------------------------------------
- Byte Byte Code Name Set
- 3 4 Pos
- -----------------------------------------------------------------------------------
- 255 197 12/05 F8 Keyboard
- 255 198 12/06 F9 Keyboard
- 255 199 12/07 F10 Keyboard
- 255 200 12/08 F11, L1 Keyboard
- 255 201 12/09 F12, L2 Keyboard
- 255 202 12/10 F13, L3 Keyboard
- 255 203 12/11 F14, L4 Keyboard
- 255 204 12/12 F15, L5 Keyboard
- 255 205 12/13 F16, L6 Keyboard
- 255 206 12/14 F17, L7 Keyboard
- 255 207 12/15 F18, L8 Keyboard
- 255 208 13/00 F19, L9 Keyboard
- 255 209 13/01 F20, L10 Keyboard
- 255 210 13/02 F21, R1 Keyboard
- 255 211 13/03 F22, R2 Keyboard
- 255 212 13/04 F23, R3 Keyboard
- 255 213 13/05 F24, R4 Keyboard
- 255 214 13/06 F25, R5 Keyboard
- 255 215 13/07 F26, R6 Keyboard
- 255 216 13/08 F27, R7 Keyboard
- 255 217 13/09 F28, R8 Keyboard
- 255 218 13/10 F29, R9 Keyboard
- 255 219 13/11 F30, R10 Keyboard
- 255 220 13/12 F31, R11 Keyboard
- 255 221 13/13 F32, R12 Keyboard
- 255 222 13/14 F33, R13 Keyboard
- 255 223 13/15 F34, R14 Keyboard
- 255 224 14/00 F35, R15 Keyboard
- 255 225 14/01 LEFT SHIFT Keyboard
- 255 226 14/02 RIGHT SHIFT Keyboard
- 255 227 14/03 LEFT CONTROL Keyboard
- 255 228 14/04 RIGHT CONTROL Keyboard
- 255 229 14/05 CAPS LOCK Keyboard
- 255 230 14/06 SHIFT LOCK Keyboard
- 255 231 14/07 LEFT META Keyboard
- 255 232 14/08 RIGHT META Keyboard
- 255 233 14/09 LEFT ALT Keyboard
- 255 234 14/10 RIGHT ALT Keyboard
- 255 235 14/11 LEFT SUPER Keyboard
- 255 236 14/12 RIGHT SUPER Keyboard
- 255 237 14/13 LEFT HYPER Keyboard
- 255 238 14/14 RIGHT HYPER Keyboard
- 255 255 15/15 DELETE, RUBOUT Keyboard
- -----------------------------------------------------------------------------------
-
-
-
-
-
-
-
-
-
- 150
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
-
-
- Appendix B
-
- Protocol Encoding
-
-
-
-
- Syntactic Conventions
-
- All numbers are in decimal, unless prefixed with #x, in
- which case they are in hexadecimal (base 16).
-
- The general syntax used to describe requests, replies,
- errors, events, and compound types is:
-
-
- NameofThing
- encode-form
- ...
- encode-form
-
-
- Each encode-form describes a single component.
-
- For components described in the protocol as:
-
-
- name: TYPE
-
-
- the encode-form is:
-
-
- N TYPE name
-
-
- N is the number of bytes occupied in the data stream, and
- TYPE is the interpretation of those bytes. For example,
-
-
- depth: CARD8
-
-
- becomes:
-
-
- 1 CARD8 depth
-
-
- For components with a static numeric value the encode-form
- is:
-
-
-
-
- 151
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- N value name
-
-
- The value is always interpreted as an N-byte unsigned inte-
- ger. For example, the first two bytes of a Window error are
- always zero (indicating an error in general) and three
- (indicating the Window error in particular):
-
-
- 1 0 Error
- 1 3 code
-
-
- For components described in the protocol as:
-
- name: {Name1,..., NameI}
-
- the encode-form is:
-
-
- N name
- value1 Name1
- ...
- valueI NameI
-
-
- The value is always interpreted as an N-byte unsigned inte-
- ger. Note that the size of N is sometimes larger than that
- strictly required to encode the values. For example:
-
- class: {InputOutput, InputOnly, CopyFromParent}
-
- becomes:
-
-
- 2 class
- 0 CopyFromParent
- 1 InputOutput
- 2 InputOnly
-
-
- For components described in the protocol as:
-
- NAME: TYPE or Alternative1...or AlternativeI
-
- the encode-form is:
-
-
- N TYPE NAME
- value1 Alternative1
- ...
- valueI AlternativeI
-
-
-
-
-
- 152
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- The alternative values are guaranteed not to conflict with
- the encoding of TYPE. For example:
-
- destination: WINDOW or PointerWindow or InputFocus
-
- becomes:
-
-
- 4 WINDOW destination
- 0 PointerWindow
- 1 InputFocus
-
-
- For components described in the protocol as:
-
-
- value-mask: BITMASK
-
-
- the encode-form is:
-
-
- N BITMASK value-mask
- mask1 mask-name1
- ...
- maskI mask-nameI
-
-
- 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-sig-
- nificant 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.
-
- For LISTofVALUE encodings, the request is followed by a sec-
- tion of the form:
-
-
- VALUEs
- encode-form
- ...
- encode-form
-
-
- 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 num-
- ber of bytes specified in the encoding-form indicates how
-
-
-
- 153
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- many of the least-significant bytes are actually used; the
- remaining bytes are unused and their values do not matter.
-
- In various cases, the number of bytes occupied by a compo-
- nent 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:
-
-
- 2 3+n request length
- 4n LISTofPOINT points
-
-
- For unused bytes (the values of the bytes are undefined and
- do no matter), the encode-form is:
-
-
- N unused
-
-
- If the number of unused bytes is variable, the encode-form
- typically is:
-
-
- p unused, p=pad(E)
-
-
- where E is some expression, and pad(E) is the number of
- bytes needed to round E up to a multiple of four.
-
-
- pad(E) = (4 - (E mod 4)) mod 4
-
-
- Common Types
-
- LISTofFOO
-
- 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.
-
- SETofFOO
-
- A set is always represented by a bitmask, with a 1-bit
- indicating presence in the set.
-
- BITMASK: CARD32
-
-
-
-
- 154
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- WINDOW: CARD32
-
- PIXMAP: CARD32
-
- CURSOR: CARD32
-
- FONT: CARD32
-
- GCONTEXT: CARD32
-
- COLORMAP: CARD32
-
- DRAWABLE: CARD32
-
- FONTABLE: CARD32
-
- ATOM: CARD32
-
- VISUALID: CARD32
-
- BYTE: 8-bit value
-
- INT8: 8-bit signed integer
-
- INT16: 16-bit signed integer
-
- INT32: 32-bit signed integer
-
- CARD8: 8-bit unsigned integer
-
- CARD16: 16-bit unsigned integer
-
- CARD32: 32-bit unsigned integer
-
- TIMESTAMP: CARD32
-
-
- BITGRAVITY
- 0 Forget
- 1 NorthWest
- 2 North
- 3 NorthEast
- 4 West
- 5 Center
- 6 East
- 7 SouthWest
- 8 South
- 9 SouthEast
- 10 Static
-
-
-
- WINGRAVITY
- 0 Unmap
-
-
-
- 155
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 1 NorthWest
- 2 North
- 3 NorthEast
- 4 West
- 5 Center
- 6 East
- 7 SouthWest
- 8 South
- 9 SouthEast
- 10 Static
-
-
-
- BOOL
- 0 False
- 1 True
-
-
-
- SETofEVENT
- #x00000001KeyPress
- #x00000002KeyRelease
- #x00000004ButtonPress
- #x00000008ButtonRelease
- #x00000010EnterWindow
- #x00000020LeaveWindow
- #x00000040PointerMotion
- #x00000080PointerMotionHint
- #x00000100Button1Motion
- #x00000200Button2Motion
- #x00000400Button3Motion
- #x00000800Button4Motion
- #x00001000Button5Motion
- #x00002000ButtonMotion
- #x00004000KeymapState
- #x00008000Exposure
- #x00010000VisibilityChange
- #x00020000StructureNotify
- #x00040000ResizeRedirect
- #x00080000SubstructureNotify
- #x00100000SubstructureRedirect
- #x00200000FocusChange
- #x00400000PropertyChange
- #x00800000ColormapChange
- #x01000000OwnerGrabButton
- #xFE000000unused but must be zero
-
-
-
- SETofPOINTEREVENT
- encodings are the same as for SETofEVENT, except with
- #xFFFF8003unused but must be zero
-
-
-
-
-
- 156
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- SETofDEVICEEVENT
- encodings are the same as for SETofEVENT, except with
- #xFFFFC0B0unused but must be zero
-
- KEYSYM: CARD32
-
- KEYCODE: CARD8
-
- BUTTON: CARD8
-
-
- 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
-
-
-
- SETofKEYMASK
- encodings are the same as for SETofKEYBUTMASK, except with
- #xFF00 unused but must be zero
-
-
- STRING8: LISTofCARD8
-
- STRING16: LISTofCHAR2B
-
-
- CHAR2B
- 1 CARD8 byte1
- 1 CARD8 byte2
-
-
-
- POINT
- 2 INT16 x
- 2 INT16 y
-
-
-
- RECTANGLE
- 2 INT16 x
- 2 INT16 y
-
-
-
- 157
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 2 CARD16 width
- 2 CARD16 height
-
-
-
- ARC
- 2 INT16 x
- 2 INT16 y
- 2 CARD16 width
- 2 CARD16 height
- 2 INT16 angle1
- 2 INT16 angle2
-
-
-
- HOST
- 1 family
- 0 Internet
- 1 DECnet
- 2 Chaos
- 1 unused
- 2 n length of address
- n LISTofBYTE address
- p unused, p=pad(n)
-
-
-
- STR
- 1 n length of name in bytes
- n STRING8 name
-
-
- Errors
-
-
- Request
- 1 0 Error
- 1 1 code
- 2 CARD16 sequence number
- 4 unused
- 2 CARD16 minor opcode
- 1 CARD8 major opcode
- 21 unused
-
-
-
- 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
-
-
-
- 158
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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
-
-
-
- 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
-
-
-
- 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
-
-
-
- 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
-
-
-
- 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
-
-
-
-
-
- 159
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Match
- 1 0 Error
- 1 8 code
- 2 CARD16 sequence number
- 4 unused
- 2 CARD16 minor opcode
- 1 CARD8 major opcode
- 21 unused
-
-
-
- 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
-
-
-
- Access
- 1 0 Error
- 1 10 code
- 2 CARD16 sequence number
- 4 unused
- 2 CARD16 minor opcode
- 1 CARD8 major opcode
- 21 unused
-
-
-
- Alloc
- 1 0 Error
- 1 11 code
- 2 CARD16 sequence number
- 4 unused
- 2 CARD16 minor opcode
- 1 CARD8 major opcode
- 21 unused
-
-
-
- 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
-
-
-
-
-
- 160
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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
-
-
-
- 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
-
-
-
- Name
- 1 0 Error
- 1 15 code
- 2 CARD16 sequence number
- 4 unused
- 2 CARD16 minor opcode
- 1 CARD8 major opcode
- 21 unused
-
-
-
- Length
- 1 0 Error
- 1 16 code
- 2 CARD16 sequence number
- 4 unused
- 2 CARD16 minor opcode
- 1 CARD8 major opcode
- 21 unused
-
-
-
- Implementation
- 1 0 Error
- 1 17 code
- 2 CARD16 sequence number
- 4 unused
- 2 CARD16 minor opcode
- 1 CARD8 major opcode
- 21 unused
-
-
-
-
-
- 161
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Keyboards
-
- KEYCODE values are always greater than 7 (and less than
- 256).
-
- KEYSYM values with the bit #x10000000 set are reserved as
- vendor-specific.
-
- The names and encodings of the standard KEYSYM values are
- contained in Appendix A, Keysym Encoding.
-
- Pointers
-
- BUTTON values are numbered starting with one.
-
- Predefined Atoms
-
-
- 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_POSITION51
- CUT_BUFFER4 13 UNDERLINE_THICKNESS52
- CUT_BUFFER5 14 STRIKEOUT_ASCENT 53
- CUT_BUFFER6 15 STRIKEOUT_DESCENT54
- 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
-
-
-
- 162
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- WM_ICON_NAME 37
- WM_ICON_SIZE 38
- WM_NAME 39
-
-
- Connection Setup
-
- 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 connec-
- tions, displays on a given host are numbered starting from
- 0, and the server for display N listens and accepts connec-
- tions on the object name obtained by concatenating ``X$X''
- with the decimal representation of N, for example, X$X0 and
- X$X1.
-
- Information sent by the client at connection setup:
-
-
- 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)
-
-
- 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.
-
- Information received by the client if the connection is
- refused:
-
-
- 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)
-
-
-
-
-
-
- 163
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Information received by the client if further authentication
- is required:
-
-
- 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)
-
-
- Information received by the client if the connection is
- accepted:
-
-
- 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)
-
-
-
- FORMAT
- 1 CARD8 depth
- 1 CARD8 bits-per-pixel
- 1 CARD8 scanline-pad
- 5 unused
-
-
-
-
-
-
- 164
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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)
-
-
-
- DEPTH
- 1 CARD8 depth
- 1 unused
- 2 n number of VISUALTYPES in visuals
- 4 unused
- 24n LISTofVISUALTYPEvisuals
-
-
-
- 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
-
-
- Requests
-
-
- CreateWindow
-
-
-
- 165
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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
-
-
- 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
-
-
-
- 166
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 4 SETofDEVICEEVENT do-not-propagate-mask
- 4 COLORMAP colormap
- 0 CopyFromParent
- 4 CURSOR cursor
- 0 None
-
-
-
- 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
-
-
-
- GetWindowAttributes
- 1 3 opcode
- 1 unused
- 2 2 request length
- 4 WINDOW window
-
-
- ->
- 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
-
-
-
- 167
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 2 SETofDEVICEEVENT do-not-propagate-mask
- 2 unused
-
-
-
- DestroyWindow
- 1 4 opcode
- 1 unused
- 2 2 request length
- 4 WINDOW window
-
-
-
- DestroySubwindows
- 1 5 opcode
- 1 unused
- 2 2 request length
- 4 WINDOW window
-
-
-
- ChangeSaveSet
- 1 6 opcode
- 1 mode
- 0 Insert
- 1 Delete
- 2 2 request length
- 4 WINDOW window
-
-
-
- ReparentWindow
- 1 7 opcode
- 1 unused
- 2 4 request length
- 4 WINDOW window
- 4 WINDOW parent
- 2 INT16 x
- 2 INT16 y
-
-
-
- MapWindow
- 1 8 opcode
- 1 unused
- 2 2 request length
- 4 WINDOW window
-
-
-
- MapSubwindows
- 1 9 opcode
- 1 unused
- 2 2 request length
-
-
-
- 168
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 4 WINDOW window
-
-
-
- UnmapWindow
- 1 10 opcode
- 1 unused
- 2 2 request length
- 4 WINDOW window
-
-
-
- UnmapSubwindows
- 1 11 opcode
- 1 unused
- 2 2 request length
- 4 WINDOW window
-
-
-
- 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
-
-
- 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
-
-
-
- CirculateWindow
-
-
-
- 169
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 1 13 opcode
- 1 direction
- 0 RaiseLowest
- 1 LowerHighest
- 2 2 request length
- 4 WINDOW window
-
-
-
- GetGeometry
- 1 14 opcode
- 1 unused
- 2 2 request length
- 4 DRAWABLE drawable
-
-
- ->
- 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
-
-
-
- QueryTree
- 1 15 opcode
- 1 unused
- 2 2 request length
- 4 WINDOW window
-
-
- ->
- 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
-
-
-
- InternAtom
- 1 16 opcode
-
-
-
- 170
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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)
-
-
- ->
- 1 1 Reply
- 1 unused
- 2 CARD16 sequence number
- 4 0 reply length
- 4 ATOM atom
- 0 None
- 20 unused
-
-
-
- GetAtomName
- 1 17 opcode
- 1 unused
- 2 2 request length
- 4 ATOM atom
-
-
- ->
- 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)
-
-
-
- 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)
-
-
-
- 171
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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)
-
-
-
- DeleteProperty
- 1 19 opcode
- 1 unused
- 2 3 request length
- 4 WINDOW window
- 4 ATOM property
-
-
-
- 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
-
-
- ->
- 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)
-
-
-
- ListProperties
- 1 21 opcode
- 1 unused
- 2 2 request length
-
-
-
- 172
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 4 WINDOW window
-
-
- ->
- 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
-
-
-
- SetSelectionOwner
- 1 22 opcode
- 1 unused
- 2 4 request length
- 4 WINDOW owner
- 0 None
- 4 ATOM selection
- 4 TIMESTAMP time
- 0 CurrentTime
-
-
-
- GetSelectionOwner
- 1 23 opcode
- 1 unused
- 2 2 request length
- 4 ATOM selection
-
-
- ->
- 1 1 Reply
- 1 unused
- 2 CARD16 sequence number
- 4 0 reply length
- 4 WINDOW owner
- 0 None
- 20 unused
-
-
-
- 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
-
-
-
- 173
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 0 CurrentTime
-
-
-
- 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)
-
-
-
- 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
-
-
- ->
- 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
-
-
-
- UngrabPointer
- 1 27 opcode
- 1 unused
-
-
-
- 174
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 2 2 request length
- 4 TIMESTAMP time
- 0 CurrentTime
-
-
-
- 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
-
-
-
- UngrabButton
- 1 29 opcode
- 1 BUTTON button
- 0 AnyButton
- 2 3 request length
- 4 WINDOW grab-window
- 2 SETofKEYMASK modifiers
- #x8000 AnyModifier
- 2 unused
-
-
-
- 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
-
-
-
-
-
- 175
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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
-
-
- ->
- 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
-
-
-
- UngrabKeyboard
- 1 32 opcode
- 1 unused
- 2 2 request length
- 4 TIMESTAMP time
- 0 CurrentTime
-
-
-
- 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
-
-
-
- 176
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 3 unused
-
-
-
- UngrabKey
- 1 34 opcode
- 1 KEYCODE key
- 0 AnyKey
- 2 3 request length
- 4 WINDOW grab-window
- 2 SETofKEYMASK modifiers
- #x8000 AnyModifier
- 2 unused
-
-
-
- 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
-
-
-
- GrabServer
- 1 36 opcode
- 1 unused
- 2 1 request length
-
-
-
- UngrabServer
- 1 37 opcode
- 1 unused
- 2 1 request length
-
-
-
- QueryPointer
- 1 38 opcode
- 1 unused
- 2 2 request length
- 4 WINDOW window
-
-
-
-
-
- 177
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- ->
- 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
-
-
-
- GetMotionEvents
- 1 39 opcode
- 1 unused
- 2 4 request length
- 4 WINDOW window
- 4 TIMESTAMP start
- 0 CurrentTime
- 4 TIMESTAMP stop
- 0 CurrentTime
-
-
- ->
- 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
-
-
-
- TIMECOORD
- 4 TIMESTAMP time
- 2 INT16 x
- 2 INT16 y
-
-
-
- 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
-
-
-
- 178
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- ->
- 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
-
-
-
- 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
-
-
-
- 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
-
-
-
- GetInputFocus
- 1 43 opcode
- 1 unused
- 2 1 request length
-
-
- ->
- 1 1 Reply
- 1 revert-to
-
-
-
- 179
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 0 None
- 1 PointerRoot
- 2 Parent
- 2 CARD16 sequence number
- 4 0 reply length
- 4 WINDOW focus
- 0 None
- 1 PointerRoot
- 20 unused
-
-
-
- QueryKeymap
- 1 44 opcode
- 1 unused
- 2 1 request length
-
-
- ->
- 1 1 Reply
- 1 unused
- 2 CARD16 sequence number
- 4 2 reply length
- 32 LISTofCARD8 keys
-
-
-
- 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)
-
-
-
- CloseFont
- 1 46 opcode
- 1 unused
- 2 2 request length
- 4 FONT font
-
-
-
- QueryFont
- 1 47 opcode
- 1 unused
- 2 2 request length
- 4 FONTABLE font
-
-
-
-
-
- 180
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- ->
- 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 LISTofCHARINFOchar-infos
-
-
- FONTPROP
- 4 ATOM name
- 4 <32-bits> value
-
-
-
- CHARINFO
- 2 INT16 left-side-bearing
- 2 INT16 right-side-bearing
- 2 INT16 character-width
- 2 INT16 ascent
- 2 INT16 descent
- 2 CARD16 attributes
-
-
-
- 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)
-
-
- ->
- 1 1 Reply
- 1 draw-direction
-
-
-
- 181
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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
-
-
-
- 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)
-
-
- ->
- 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)
-
-
-
- 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)
-
-
- -> (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
-
-
-
- 182
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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)
-
-
- FONTPROP
- encodings are the same as for QueryFont
-
- CHARINFO
- encodings are the same as for QueryFont
-
-
- -> (last in series)
- 1 1 Reply
- 1 0 last-reply indicator
- 2 CARD16 sequence number
- 4 7 reply length
- 52 unused
-
-
-
- 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)
-
-
-
- GetFontPath
- 1 52 opcode
- 1 unused
- 2 1 request list
-
-
- ->
-
-
-
- 183
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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)
-
-
-
- CreatePixmap
- 1 53 opcode
- 1 CARD8 depth
- 2 4 request length
- 4 PIXMAP pid
- 4 DRAWABLE drawable
- 2 CARD16 width
- 2 CARD16 height
-
-
-
- FreePixmap
- 1 54 opcode
- 1 unused
- 2 2 request length
- 4 PIXMAP pixmap
-
-
-
- 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
-
-
-
- 184
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- #x00020000 clip-x-origin
- #x00040000 clip-y-origin
- #x00080000 clip-mask
- #x00100000 dash-offset
- #x00200000 dashes
- #x00400000 arc-mode
- 4n LISTofVALUE value-list
-
-
- 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
-
-
-
- 185
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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
-
-
-
- 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
-
-
-
- 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
-
-
-
- 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)
-
-
-
-
-
-
- 186
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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
-
-
-
- FreeGC
- 1 60 opcode
- 1 unused
- 2 2 request length
- 4 GCONTEXT gc
-
-
-
- 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
-
-
-
- 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
-
-
-
- CopyPlane
- 1 63 opcode
- 1 unused
-
-
-
- 187
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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
-
-
-
- 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
-
-
-
- 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
-
-
-
- PolySegment
- 1 66 opcode
- 1 unused
- 2 3+2n request length
- 4 DRAWABLE drawable
- 4 GCONTEXT gc
- 8n LISTofSEGMENT segments
-
-
- SEGMENT
- 2 INT16 x1
- 2 INT16 y1
- 2 INT16 x2
- 2 INT16 y2
-
-
-
-
-
- 188
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- PolyRectangle
- 1 67 opcode
- 1 unused
- 2 3+2n request length
- 4 DRAWABLE drawable
- 4 GCONTEXT gc
- 8n LISTofRECTANGLE rectangles
-
-
-
- PolyArc
- 1 68 opcode
- 1 unused
- 2 3+3n request length
- 4 DRAWABLE drawable
- 4 GCONTEXT gc
- 12n LISTofARC arcs
-
-
-
- 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
-
-
-
- PolyFillRectangle
- 1 70 opcode
- 1 unused
- 2 3+2n request length
- 4 DRAWABLE drawable
- 4 GCONTEXT gc
- 8n LISTofRECTANGLE rectangles
-
-
-
- PolyFillArc
- 1 71 opcode
- 1 unused
- 2 3+3n request length
- 4 DRAWABLE drawable
- 4 GCONTEXT gc
-
-
-
- 189
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 12n LISTofARC arcs
-
-
-
- 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)
-
-
-
- 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
-
-
- ->
- 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)
-
-
-
- PolyText8
- 1 74 opcode
-
-
-
- 190
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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)
-
-
- 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)
-
-
-
- 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)
-
-
- 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)
-
-
-
- ImageText8
- 1 76 opcode
- 1 n length of string
- 2 4+(n+p)/4 request length
- 4 DRAWABLE drawable
- 4 GCONTEXT gc
-
-
-
- 191
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 2 INT16 x
- 2 INT16 y
- n STRING8 string
- p unused, p=pad(n)
-
-
-
- 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)
-
-
-
- CreateColormap
- 1 78 opcode
- 1 alloc
- 0 None
- 1 All
- 2 4 request length
- 4 COLORMAP mid
- 4 WINDOW window
- 4 VISUALID visual
-
-
-
- FreeColormap
- 1 79 opcode
- 1 unused
- 2 2 request length
- 4 COLORMAP cmap
-
-
-
- CopyColormapAndFree
- 1 80 opcode
- 1 unused
- 2 3 request length
- 4 COLORMAP mid
- 4 COLORMAP src-cmap
-
-
-
- InstallColormap
- 1 81 opcode
- 1 unused
- 2 2 request length
- 4 COLORMAP cmap
-
-
-
- 192
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- UninstallColormap
- 1 82 opcode
- 1 unused
- 2 2 request length
- 4 COLORMAP cmap
-
-
-
- ListInstalledColormaps
- 1 83 opcode
- 1 unused
- 2 2 request length
- 4 WINDOW window
-
-
- ->
- 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
-
-
-
- AllocColor
- 1 84 opcode
- 1 unused
- 2 4 request length
- 4 COLORMAP cmap
- 2 CARD16 red
- 2 CARD16 green
- 2 CARD16 blue
- 2 unused
-
-
- ->
- 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
-
-
-
- AllocNamedColor
- 1 85 opcode
- 1 unused
-
-
-
- 193
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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)
-
-
- ->
- 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
-
-
-
- AllocColorCells
- 1 86 opcode
- 1 BOOL contiguous
- 2 3 request length
- 4 COLORMAP cmap
- 2 CARD16 colors
- 2 CARD16 planes
-
-
- ->
- 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
-
-
-
- AllocColorPlanes
- 1 87 opcode
- 1 BOOL contiguous
- 2 4 request length
- 4 COLORMAP cmap
- 2 CARD16 colors
- 2 CARD16 reds
- 2 CARD16 greens
-
-
-
- 194
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 2 CARD16 blues
-
-
- ->
- 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
-
-
-
- FreeColors
- 1 88 opcode
- 1 unused
- 2 3+n request length
- 4 COLORMAP cmap
- 4 CARD32 plane-mask
- 4n LISTofCARD32 pixels
-
-
-
- StoreColors
- 1 89 opcode
- 1 unused
- 2 2+3n request length
- 4 COLORMAP cmap
- 12n LISTofCOLORITEMitems
-
-
- 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
-
-
-
- StoreNamedColor
- 1 90 opcode
- 1 do-red, do-green, do-blue
- #x01 do-red (1 is True, 0 is False)
-
-
-
- 195
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- #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)
-
-
-
- QueryColors
- 1 91 opcode
- 1 unused
- 2 2+n request length
- 4 COLORMAP cmap
- 4n LISTofCARD32 pixels
-
-
- ->
- 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
-
-
- RGB
- 2 CARD16 red
- 2 CARD16 green
- 2 CARD16 blue
- 2 unused
-
-
-
- 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)
-
-
- ->
- 1 1 Reply
- 1 unused
- 2 CARD16 sequence number
-
-
-
- 196
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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
-
-
-
- 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
-
-
-
- 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
-
-
-
- FreeCursor
- 1 95 opcode
- 1 unused
- 2 2 request length
- 4 CURSOR cursor
-
-
-
- 197
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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
-
-
-
- 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
-
-
- ->
- 1 1 Reply
- 1 unused
- 2 CARD16 sequence number
- 4 0 reply length
- 2 CARD16 width
- 2 CARD16 height
- 20 unused
-
-
-
- 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)
-
-
- ->
- 1 1 Reply
- 1 unused
- 2 CARD16 sequence number
- 4 0 reply length
- 1 BOOL present
- 1 CARD8 major-opcode
-
-
-
- 198
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 1 CARD8 first-event
- 1 CARD8 first-error
- 20 unused
-
-
-
- ListExtensions
- 1 99 opcode
- 1 unused
- 2 1 request length
-
-
- ->
- 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)
-
-
-
- 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 LISTofKEYSYMkeysyms
-
-
-
- GetKeyboardMapping
- 1 101 opcode
- 1 unused
- 2 2 request length
- 1 KEYCODE first-keycode
- 1 m count
- 2 unused
-
-
- ->
- 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 LISTofKEYSYMkeysyms
-
-
-
- ChangeKeyboardControl
-
-
-
- 199
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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
-
-
- 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
-
-
-
- GetKeyboardControl
- 1 103 opcode
- 1 unused
- 2 1 request length
-
-
- ->
- 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
-
-
-
-
-
- 200
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Bell
- 1 104 opcode
- 1 INT8 percent
- 2 1 request length
-
-
-
- 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
-
-
-
- GetPointerControl
- 1 106 opcode
- 1 unused
- 2 1 request length
-
-
- ->
- 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
-
-
-
- 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
-
-
-
-
-
- 201
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- GetScreenSaver
- 1 108 opcode
- 1 unused
- 2 1 request length
-
-
- ->
- 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
-
-
-
- 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)
-
-
-
- ListHosts
- 1 110 opcode
- 1 unused
- 2 1 request length
-
-
- ->
- 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
-
-
-
- 202
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 22 unused
- n LISTofHOST hosts (n always a multiple of 4)
-
-
-
- SetAccessControl
- 1 111 opcode
- 1 mode
- 0 Disable
- 1 Enable
- 2 1 request length
-
-
-
- SetCloseDownMode
- 1 112 opcode
- 1 mode
- 0 Destroy
- 1 RetainPermanent
- 2 RetainTemporary
- 2 1 request length
-
-
-
- KillClient
- 1 113 opcode
- 1 unused
- 2 2 request length
- 4 CARD32 resource
- 0 AllTemporary
-
-
-
- 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
-
-
-
- ForceScreenSaver
- 1 115 opcode
- 1 mode
- 0 Reset
- 1 Activate
- 2 1 request length
-
-
-
- SetPointerMapping
-
-
-
- 203
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 1 116 opcode
- 1 n length of map
- 2 1+(n+p)/4 request length
- n LISTofCARD8 map
- p unused, p=pad(n)
-
-
- ->
- 1 1 Reply
- 1 status
- 0 Success
- 1 Busy
- 2 CARD16 sequence number
- 4 0 reply length
- 24 unused
-
-
-
- GetPointerMapping
- 1 117 opcode
- 1 unused
- 2 1 request length
-
-
- ->
- 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)
-
-
-
- SetModifierMapping
- 1 118 opcode
- 1 n keycodes-per-modifier
- 2 1+2n request length
- 8n LISTofKEYCODE keycodes
-
-
- ->
- 1 1 Reply
- 1 status
- 0 Success
- 1 Busy
- 2 Failed
- 2 CARD16 sequence number
- 4 0 reply length
- 24 unused
-
-
-
-
-
-
- 204
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- GetModifierMapping
- 1 119 opcode
- 1 unused
- 2 1 request length
-
-
- ->
- 1 1 Reply
- 1 n keycodes-per-modifier
- 2 CARD16 sequence number
- 4 2n reply length
- 24 unused
- 8n LISTofKEYCODE keycodes
-
-
-
- NoOperation
- 1 127 opcode
- 1 unused
- 2 1+n request length
- 4n unused
-
-
- Events
-
-
- 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
-
-
-
- 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
-
-
-
- 205
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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
-
-
-
- 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
-
-
-
- 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
-
-
-
- MotionNotify
- 1 6 code
- 1 detail
- 0 Normal
- 1 Hint
- 2 CARD16 sequence number
-
-
-
- 206
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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
-
-
-
- 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
-
-
-
- LeaveNotify
- 1 8 code
- 1 detail
- 0 Ancestor
- 1 Virtual
- 2 Inferior
- 3 Nonlinear
- 4 NonlinearVirtual
- 2 CARD16 sequence number
-
-
-
- 207
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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
-
-
-
- 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
-
-
-
- FocusOut
- 1 10 code
- 1 detail
- 0 Ancestor
- 1 Virtual
- 2 Inferior
- 3 Nonlinear
- 4 NonlinearVirtual
- 5 Pointer
- 6 PointerRoot
- 7 None
-
-
-
- 208
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 2 CARD16 sequence number
- 4 WINDOW event
- 1 mode
- 0 Normal
- 1 Grab
- 2 Ungrab
- 3 WhileGrabbed
- 23 unused
-
-
-
- KeymapNotify
- 1 11 code
- 31 LISTofCARD8 keys (byte for keycodes 0-7 is omitted)
-
-
-
- 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
-
-
-
- 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
-
-
-
- NoExposure
- 1 14 code
- 1 unused
- 2 CARD16 sequence number
- 4 DRAWABLE drawable
- 2 CARD16 minor-opcode
- 1 CARD8 major-opcode
-
-
-
- 209
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 21 unused
-
-
-
- VisibilityNotify
- 1 15 code
- 1 unused
- 2 CARD16 sequence number
- 4 WINDOW window
- 1 state
- 0 Unobscured
- 1 PartiallyObscured
- 2 FullyObscured
- 23 unused
-
-
-
- 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
-
-
-
- DestroyNotify
- 1 17 code
- 1 unused
- 2 CARD16 sequence number
- 4 WINDOW event
- 4 WINDOW window
- 20 unused
-
-
-
- UnmapNotify
- 1 18 code
- 1 unused
- 2 CARD16 sequence number
- 4 WINDOW event
- 4 WINDOW window
- 1 BOOL from-configure
- 19 unused
-
-
-
-
-
-
- 210
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- MapNotify
- 1 19 code
- 1 unused
- 2 CARD16 sequence number
- 4 WINDOW event
- 4 WINDOW window
- 1 BOOL override-redirect
- 19 unused
-
-
-
- MapRequest
- 1 20 code
- 1 unused
- 2 CARD16 sequence number
- 4 WINDOW parent
- 4 WINDOW window
- 20 unused
-
-
-
- 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
-
-
-
- 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
-
-
-
- ConfigureRequest
-
-
-
- 211
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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
-
-
-
- GravityNotify
- 1 24 code
- 1 unused
- 2 CARD16 sequence number
- 4 WINDOW event
- 4 WINDOW window
- 2 INT16 x
- 2 INT16 y
- 16 unused
-
-
-
- ResizeRequest
- 1 25 code
- 1 unused
- 2 CARD16 sequence number
- 4 WINDOW window
- 2 CARD16 width
- 2 CARD16 height
- 20 unused
-
-
-
- CirculateNotify
- 1 26 code
-
-
-
- 212
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 1 unused
- 2 CARD16 sequence number
- 4 WINDOW event
- 4 WINDOW window
- 4 WINDOW unused
- 1 place
- 0 Top
- 1 Bottom
- 15 unused
-
-
-
- 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
-
-
-
- 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
-
-
-
- SelectionClear
- 1 29 code
- 1 unused
- 2 CARD16 sequence number
- 4 TIMESTAMP time
- 4 WINDOW owner
- 4 ATOM selection
- 16 unused
-
-
-
- SelectionRequest
- 1 30 code
- 1 unused
-
-
-
- 213
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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
-
-
-
- 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
-
-
-
- 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
-
-
-
- ClientMessage
- 1 33 code
- 1 CARD8 format
- 2 CARD16 sequence number
- 4 WINDOW window
- 4 ATOM type
- 20 data
-
-
-
- MappingNotify
-
-
-
- 214
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 215
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
-
-
- Glossary
-
-
-
- Access control list
-
- X maintains a list of hosts from which client programs
- can be run. By default, only programs on the local
- host and hosts specified in an initial list read by the
- server can use the display. Clients on the local host
- can change this access control list. Some server
- implementations can also implement other authorization
- mechanisms in addition to or in place of this mecha-
- nism. The action of this mechanism can be conditional
- based on the authorization protocol name and data
- received by the server at connection setup.
-
- Active grab
-
- A grab is active when the pointer or keyboard is actu-
- ally owned by the single grabbing client.
-
- Ancestors
-
- If W is an inferior of A, then A is an ancestor of W.
-
- Atom
-
- An atom is a unique ID corresponding to a string name.
- Atoms are used to identify properties, types, and
- selections.
-
- Background
-
- An InputOutput window can have a background, which is
- defined as a pixmap. When regions of the window have
- their contents lost or invalidated, the server will
- automatically tile those regions with the background.
-
- Backing store
-
- When a server maintains the contents of a window, the
- pixels saved off screen are known as a backing store.
-
-
-
-
-
-
-
-
-
-
-
-
- 216
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Bit gravity
-
- When a window is resized, the contents of the window
- are not necessarily discarded. It is possible to
- request that the server relocate the previous contents
- to some region of the window (though no guarantees are
- made). This attraction of window contents for some
- location of a window is known as bit gravity.
-
- Bit plane
-
- When a pixmap or window is thought of as a stack of
- bitmaps, each bitmap is called a bit plane or plane.
-
- Bitmap
-
- A bitmap is a pixmap of depth one.
-
- Border
-
- An InputOutput window can have a border of equal thick-
- ness on all four sides of the window. A pixmap defines
- the contents of the border, and the server automati-
- cally maintains the contents of the border. Exposure
- events are never generated for border regions.
-
- Button grabbing
-
- Buttons on the pointer may be passively grabbed by a
- client. When the button is pressed, the pointer is
- then actively grabbed by the client.
-
- Byte order
-
- For image (pixmap/bitmap) data, the server defines the
- byte order, and clients with different native byte
- ordering must swap bytes as necessary. For all other
- parts of the protocol, the client defines the byte
- order, and the server swaps bytes as necessary.
-
- Children
-
- The children of a window are its first-level subwin-
- dows.
-
-
-
-
-
-
-
-
-
-
-
-
-
- 217
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Client
-
- An application program connects to the window system
- server by some interprocess communication path, such as
- a TCP connection or a shared memory buffer. This pro-
- gram is referred to as a client of the window system
- server. More precisely, the client is the communica-
- tion path itself; a program with multiple paths open to
- the server is viewed as multiple clients by the proto-
- col. Resource lifetimes are controlled by connection
- lifetimes, not by program lifetimes.
-
- Clipping region
-
- In a graphics context, a bitmap or list of rectangles
- can be specified to restrict output to a particular
- region of the window. The image defined by the bitmap
- or rectangles is called a clipping region.
-
- Colormap
-
- A colormap consists of a set of entries defining color
- values. The colormap associated with a window is used
- to display the contents of the window; each pixel value
- indexes the colormap to produce RGB values that drive
- the guns of a monitor. Depending on hardware limita-
- tions, one or more colormaps may be installed at one
- time, so that windows associated with those maps dis-
- play with correct colors.
-
- Connection
-
- The interprocess communication path between the server
- and client program is known as a connection. A client
- program typically (but not necessarily) has one connec-
- tion to the server over which requests and events are
- sent.
-
- Containment
-
- A window ``contains'' the pointer if the window is
- viewable and the hotspot of the cursor is within a vis-
- ible region of the window or a visible region of one of
- its inferiors. The border of the window is included as
- part of the window for containment. The pointer is
- ``in'' a window if the window contains the pointer but
- no inferior contains the pointer.
-
-
-
-
-
-
-
-
-
-
- 218
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Coordinate system
-
- The coordinate system has the X axis horizontal and the
- Y axis vertical, with the origin [0, 0] at the upper
- left. Coordinates are integral, in terms of pixels,
- and coincide with pixel centers. Each window and
- pixmap has its own coordinate system. For a window,
- the origin is inside the border at the inside upper
- left.
-
- Cursor
-
- A cursor is the visible shape of the pointer on a
- screen. It consists of a hot spot, a source bitmap, a
- shape bitmap, and a pair of colors. The cursor defined
- for a window controls the visible appearance when the
- pointer is in that window.
-
- Depth
-
- The depth of a window or pixmap is the number of bits
- per pixel that it has. The depth of a graphics context
- is the depth of the drawables it can be used in con-
- junction with for graphics output.
-
- Device
-
- Keyboards, mice, tablets, track-balls, button boxes,
- and so on are all collectively known as input devices.
- The core protocol only deals with two devices, ``the
- keyboard'' and ``the pointer.''
-
- DirectColor
-
- DirectColor is a class of colormap in which a pixel
- value is decomposed into three separate subfields for
- indexing. The first subfield indexes an array to pro-
- duce red intensity values. The second subfield indexes
- a second array to produce blue intensity values. The
- third subfield indexes a third array to produce green
- intensity values. The RGB values can be changed dynam-
- ically.
-
- Display
-
- A server, together with its screens and input devices,
- is called a display.
-
-
-
-
-
-
-
-
-
-
- 219
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Drawable
-
- Both windows and pixmaps can be used as sources and
- destinations in graphics operations. These windows and
- pixmaps are collectively known as drawables. However,
- an InputOnly window cannot be used as a source or des-
- tination in a graphics operation.
-
- Event
-
- Clients are informed of information asynchronously by
- means of events. These events can be generated either
- asynchronously from devices or as side effects of
- client requests. Events are grouped into types. The
- server never sends events to a client unless the client
- has specificially asked to be informed of that type of
- event. However, other clients can force events to be
- sent to other clients. Events are typically reported
- relative to a window.
-
- Event mask
-
- Events are requested relative to a window. The set of
- event types that a client requests relative to a window
- is described by using an event mask.
-
- Event synchronization
-
- There are certain race conditions possible when demul-
- tiplexing device events to clients (in particular
- deciding where pointer and keyboard events should be
- sent when in the middle of window management opera-
- tions). The event synchronization mechanism allows
- synchronous processing of device events.
-
- Event propagation
-
- Device-related events propagate from the source window
- to ancestor windows until some client has expressed
- interest in handling that type of event or until the
- event is discarded explicitly.
-
- Event source
-
- The window the pointer is in is the source of a device-
- related event.
-
- Exposure event
-
- Servers do not guarantee to preserve the contents of
- windows when windows are obscured or reconfigured.
- Exposure events are sent to clients to inform them when
- contents of regions of windows have been lost.
-
-
-
-
- 220
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Extension
-
- Named extensions to the core protocol can be defined to
- extend the system. Extension to output requests,
- resources, and event types are all possible and are
- expected.
-
- Focus window
-
- The focus window is another term for the input focus.
-
- Font
-
- A font is a matrix of glyphs (typically characters).
- The protocol does no translation or interpretation of
- character sets. The client simply indicates values
- used to index the glyph array. A font contains addi-
- tional metric information to determine interglyph and
- interline spacing.
-
- GC, GContext
-
- GC and gcontext are abbreviations for graphics context.
-
- Glyph
-
- A glyph is an image, typically of a character, in a
- font.
-
- Grab
-
- Keyboard keys, the keyboard, pointer buttons, the
- pointer, and the server can be grabbed for exclusive
- use by a client. In general, these facilities are not
- intended to be used by normal applications but are
- intended for various input and window managers to
- implement various styles of user interfaces.
-
- Graphics context
-
- Various information for graphics output is stored in a
- graphics context such as foreground pixel, background
- pixel, line width, clipping region, and so on. A
- graphics context can only be used with drawables that
- have the same root and the same depth as the graphics
- context.
-
- Gravity
-
- See bit gravity and window gravity.
-
-
-
-
-
-
-
- 221
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- GrayScale
-
- GrayScale can be viewed as a degenerate case of
- PseudoColor, in which the red, green, and blue values
- in any given colormap entry are equal, thus producing
- shades of gray. The gray values can be changed dynami-
- cally.
-
- Hotspot
-
- A cursor has an associated hotspot that defines the
- point in the cursor corresponding to the coordinates
- reported for the pointer.
-
- Identifier
-
- An identifier is a unique value associated with a
- resource that clients use to name that resource. The
- identifier can be used over any connection.
-
- Inferiors
-
- The inferiors of a window are all of the subwindows
- nested below it: the children, the children's children,
- and so on.
-
- Input focus
-
- The input focus is normally a window defining the scope
- for processing of keyboard input. If a generated key-
- board event would normally be reported to this window
- or one of its inferiors, the event is reported nor-
- mally. Otherwise, the event is reported with respect
- to the focus window. The input focus also can be set
- such that all keyboard events are discarded and such
- that the focus window is dynamically taken to be the
- root window of whatever screen the pointer is on at
- each keyboard event.
-
- Input manager
-
- Control over keyboard input is typically provided by an
- input manager client.
-
- InputOnly window
-
- An InputOnly window is a window that cannot be used for
- graphics requests. InputOnly windows are invisible and
- can be used to control such things as cursors, input
- event generation, and grabbing. InputOnly windows can-
- not have InputOutput windows as inferiors.
-
-
-
-
-
-
- 222
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- InputOutput window
-
- An InputOutput window is the normal kind of opaque win-
- dow, used for both input and output. InputOutput win-
- dows can have both InputOutput and InputOnly windows as
- inferiors.
-
- Key grabbing
-
- Keys on the keyboard can be passively grabbed by a
- client. When the key is pressed, the keyboard is then
- actively grabbed by the client.
-
- Keyboard grabbing
-
- A client can actively grab control of the keyboard, and
- key events will be sent to that client rather than the
- client the events would normally have been sent to.
-
- Keysym
-
- An encoding of a symbol on a keycap on a keyboard.
-
- Mapped
-
- A window is said to be mapped if a map call has been
- performed on it. Unmapped windows and their inferiors
- are never viewable or visible.
-
- Modifier keys
-
- Shift, Control, Meta, Super, Hyper, Alt, Compose,
- Apple, CapsLock, ShiftLock, and similar keys are called
- modifier keys.
-
- Monochrome
-
- Monochrome is a special case of StaticGray in which
- there are only two colormap entries.
-
- Obscure
-
- A window is obscured if some other window obscures it.
- Window A obscures window B if both are viewable
- InputOutput windows, A is higher in the global stacking
- order, and the rectangle defined by the outside edges
- of A intersects the rectangle defined by the outside
- edges of B. Note the distinction between obscure and
- occludes. Also note that window borders are included
- in the calculation and that a window can be obscured
- and yet still have visible regions.
-
-
-
-
-
-
- 223
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Occlude
-
- A window is occluded if some other window occludes it.
- Window A occludes window B if both are mapped, A is
- higher in the global stacking order, and the rectangle
- defined by the outside edges of A intersects the rect-
- angle defined by the outside edges of B. Note the dis-
- tinction between occludes and obscures. Also note that
- window borders are included in the calculation.
-
- Padding
-
- Some padding bytes are inserted in the data stream to
- maintain alignment of the protocol requests on natural
- boundaries. This increases ease of portability to some
- machine architectures.
-
- Parent window
-
- If C is a child of P, then P is the parent of C.
-
- Passive grab
-
- Grabbing a key or button is a passive grab. The grab
- activates when the key or button is actually pressed.
-
- Pixel value
-
- A pixel is an N-bit value, where N is the number of bit
- planes used in a particular window or pixmap (that is,
- N is the depth of the window or pixmap). For a window,
- a pixel value indexes a colormap to derive an actual
- color to be displayed.
-
- Pixmap
-
- A pixmap is a three-dimensional array of bits. A
- pixmap is normally thought of as a two-dimensional
- array of pixels, where each pixel can be a value from 0
- to (2^N)-1 and where N is the depth (z axis) of the
- pixmap. A pixmap can also be thought of as a stack of
- N bitmaps.
-
- Plane
-
- When a pixmap or window is thought of as a stack of
- bitmaps, each bitmap is called a plane or bit plane.
-
-
-
-
-
-
-
-
-
-
- 224
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Plane mask
-
- Graphics operations can be restricted to only affect a
- subset of bit planes of a destination. A plane mask is
- a bit mask describing which planes are to be modified.
- The plane mask is stored in a graphics context.
-
- Pointer
-
- The pointer is the pointing device attached to the cur-
- sor and tracked on the screens.
-
- Pointer grabbing
-
- A client can actively grab control of the pointer.
- Then button and motion events will be sent to that
- client rather than the client the events would normally
- have been sent to.
-
- Pointing device
-
- A pointing device is typically a mouse, tablet, or some
- other device with effective dimensional motion. There
- is only one visible cursor defined by the core proto-
- col, and it tracks whatever pointing device is attached
- as the pointer.
-
- Property
-
- Windows may have associated properties, which consist
- of a name, a type, a data format, and some data. The
- protocol places no interpretation on properties. They
- are intended as a general-purpose naming mechanism for
- clients. For example, clients might use properties to
- share information such as resize hints, program names,
- and icon formats with a window manager.
-
- Property list
-
- The property list of a window is the list of properties
- that have been defined for the window.
-
- PseudoColor
-
- PseudoColor is a class of colormap in which a pixel
- value indexes the colormap to produce independent red,
- green, and blue values; that is, the colormap is viewed
- as an array of triples (RGB values). The RGB values
- can be changed dynamically.
-
-
-
-
-
-
-
-
- 225
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Redirecting control
-
- Window managers (or client programs) may want to
- enforce window layout policy in various ways. When a
- client attempts to change the size or position of a
- window, the operation may be redirected to a specified
- client rather than the operation actually being per-
- formed.
-
- Reply
-
- Information requested by a client program is sent back
- to the client with a reply. Both events and replies
- are multiplexed on the same connection. Most requests
- do not generate replies, although some requests gener-
- ate multiple replies.
-
- Request
-
- A command to the server is called a request. It is a
- single block of data sent over a connection.
-
- Resource
-
- Windows, pixmaps, cursors, fonts, graphics contexts,
- and colormaps are known as resources. They all have
- unique identifiers associated with them for naming pur-
- poses. The lifetime of a resource usually is bounded
- by the lifetime of the connection over which the
- resource was created.
-
- RGB values
-
- Red, green, and blue (RGB) intensity values are used to
- define color. These values are always represented as
- 16-bit unsigned numbers, with 0 being the minimum
- intensity and 65535 being the maximum intensity. The
- server scales the values to match the display hardware.
-
- Root
-
- The root of a pixmap, colormap, or graphics context is
- the same as the root of whatever drawable was used when
- the pixmap, colormap, or graphics context was created.
- The root of a window is the root window under which the
- window was created.
-
- Root window
-
- Each screen has a root window covering it. It cannot
- be reconfigured or unmapped, but it otherwise acts as a
- full-fledged window. A root window has no parent.
-
-
-
-
-
- 226
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Save set
-
- The save set of a client is a list of other clients'
- windows that, if they are inferiors of one of the
- client's windows at connection close, should not be
- destroyed and that should be remapped if currently
- unmapped. Save sets are typically used by window man-
- agers to avoid lost windows if the manager terminates
- abnormally.
-
- Scanline
-
- A scanline is a list of pixel or bit values viewed as a
- horizontal row (all values having the same y coordi-
- nate) of an image, with the values ordered by increas-
- ing x coordinate.
-
- Scanline order
-
- An image represented in scanline order contains scan-
- lines ordered by increasing y coordinate.
-
- Screen
-
- A server can provide several independent screens, which
- typically have physically independent monitors. This
- would be the expected configuration when there is only
- a single keyboard and pointer shared among the screens.
-
- Selection
-
- A selection can be thought of as an indirect property
- with dynamic type; that is, rather than having the
- property stored in the server, it is maintained by some
- client (the ``owner''). A selection is global in
- nature and is thought of as belonging to the user
- (although maintained by clients), rather than as being
- private to a particular window subhierarchy or a par-
- ticular set of clients. When a client asks for the
- contents of a selection, it specifies a selection
- ``target type''. This target type can be used to con-
- trol the transmitted representation of the contents.
- For example, if the selection is ``the last thing the
- user clicked on'' and that is currently an image, then
- the target type might specify whether the contents of
- the image should be sent in XY format or Z format. The
- target type can also be used to control the class of
- contents transmitted; for example, asking for the
- ``looks'' (fonts, line spacing, indentation, and so on)
- of a paragraph selection rather than the text of the
- paragraph. The target type can also be used for other
- purposes. The protocol does not constrain the seman-
- tics.
-
-
-
-
- 227
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Server
-
- The server provides the basic windowing mechanism. It
- handles connections from clients, multiplexes graphics
- requests onto the screens, and demultiplexes input back
- to the appropriate clients.
-
- Server grabbing
-
- The server can be grabbed by a single client for exclu-
- sive use. This prevents processing of any requests
- from other client connections until the grab is com-
- pleted. This is typically only a transient state for
- such things as rubber-banding, pop-up menus, or to exe-
- cute requests indivisibly.
-
- Sibling
-
- Children of the same parent window are known as sibling
- windows.
-
- Stacking order
-
- Sibling windows may stack on top of each other. Win-
- dows above other windows both obscure and occlude those
- lower windows. This is similar to paper on a desk.
- The relationship between sibling windows is known as
- the stacking order.
-
- StaticColor
-
- StaticColor can be viewed as a degenerate case of Pseu-
- doColor in which the RGB values are predefined and
- read-only.
-
- StaticGray
-
- StaticGray can be viewed as a degenerate case of
- GrayScale in which the gray values are predefined and
- read-only. The values are typically linear or near-
- linear increasing ramps.
-
- Stipple
-
- A stipple pattern is a bitmap that is used to tile a
- region that will serve as an additional clip mask for a
- fill operation with the foreground color.
-
-
-
-
-
-
-
-
-
-
- 228
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- String Equivalence
-
- Two ISO Latin-1 STRING8 values are considered equal if
- they are the same length and if corresponding bytes are
- either equal or are equivalent as follows: decimal
- values 65 to 90 inclusive (characters ``A'' to ``Z'')
- are pairwise equivalent to decimal values 97 to 122
- inclusive (characters ``a'' to ``z''), decimal values
- 192 to 214 inclusive (characters ``A grave'' to ``O
- diaeresis'') are pairwise equivalent to decimal values
- 224 to 246 inclusive (characters ``a grave'' to ``o
- diaeresis''), and decimal values 216 to 222 inclusive
- (characters ``O oblique'' to ``THORN'') are pairwise
- equivalent to decimal values 246 to 254 inclusive
- (characters ``o oblique'' to ``thorn'').
-
- Tile
-
- A pixmap can be replicated in two dimensions to tile a
- region. The pixmap itself is also known as a tile.
-
- Timestamp
-
- A timestamp is a time value, expressed in milliseconds.
- It typically is the time since the last server reset.
- Timestamp values wrap around (after about 49.7 days).
- The server, given its current time is represented by
- timestamp T, always interprets timestamps from clients
- by treating half of the timestamp space as being ear-
- lier in time than T and half of the timestamp space as
- being later in time than T. One timestamp value (named
- CurrentTime) is never generated by the server. This
- value is reserved for use in requests to represent the
- current server time.
-
- TrueColor
-
- TrueColor can be viewed as a degenerate case of Direct-
- Color in which the subfields in the pixel value
- directly encode the corresponding RGB values; that is,
- the colormap has predefined read-only RGB values. The
- values are typically linear or near-linear increasing
- ramps.
-
- Type
-
- A type is an arbitrary atom used to identify the inter-
- pretation of property data. Types are completely unin-
- terpreted by the server and are solely for the benefit
- of clients.
-
-
-
-
-
-
-
- 229
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
- Viewable
-
- A window is viewable if it and all of its ancestors are
- mapped. This does not imply that any portion of the
- window is actually visible. Graphics requests can be
- performed on a window when it is not viewable, but out-
- put will not be retained unless the server is maintain-
- ing backing store.
-
- Visible
-
- A region of a window is visible if someone looking at
- the screen can actually see it; that is, the window is
- viewable and the region is not occluded by any other
- window.
-
- Window gravity
-
- When windows are resized, subwindows may be reposi-
- tioned automatically relative to some position in the
- window. This attraction of a subwindow to some part of
- its parent is known as window gravity.
-
- Window manager
-
- Manipulation of windows on the screen and much of the
- user interface (policy) is typically provided by a win-
- dow manager client.
-
- XYFormat
-
- The data for a pixmap is said to be in XY format if it
- is organized as a set of bitmaps representing individ-
- ual bit planes, with the planes appearing from most-
- significant to least-significant in bit order.
-
- ZFormat
-
- The data for a pixmap is said to be in Z format if it
- is organized as a set of pixel values in scanline
- order.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 230
-
-
-
-
-
- X Protocol X11, Release 6.4
-
-
-
- Table of Contents
-
-
- Acknowledgments . . . . . . . . . . . . . . . . . . . . iii
- 1. Protocol Formats . . . . . . . . . . . . . . . . . . 1
- 2. Syntactic Conventions . . . . . . . . . . . . . . . . 2
- 3. Common Types . . . . . . . . . . . . . . . . . . . . 3
- 4. Errors . . . . . . . . . . . . . . . . . . . . . . . 5
- 5. Keyboards . . . . . . . . . . . . . . . . . . . . . . 8
- 6. Pointers . . . . . . . . . . . . . . . . . . . . . . 10
- 7. Predefined Atoms . . . . . . . . . . . . . . . . . . 10
- 8. Connection Setup . . . . . . . . . . . . . . . . . . 11
- 9. Requests . . . . . . . . . . . . . . . . . . . . . . 17
- 10. Connection Close . . . . . . . . . . . . . . . . . . 104
- 11. Events . . . . . . . . . . . . . . . . . . . . . . . 105
- 12. Flow Control and Concurrency . . . . . . . . . . . . 122
- Appendix A - KEYSYM Encoding . . . . . . . . . . . . . . 123
- Appendix B - Protocol Encoding . . . . . . . . . . . . . 151
- Glossary . . . . . . . . . . . . . . . . . . . . . . . . 216
- Index . . . . . . . . . . . . . . . . . . . . . . . . . 231
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-