Glossary

X uses many common terms in unique ways. A good example is “children.” While most, if not all, of these terms are defined where they are first used in this book, you will undoubtedly find it easier to refresh your memory by looking for them here.

This glossary is an expanded version of the glossary in the Xlib-C Language X Interface, by Jim Gettys, Ron Newman, and Bob Scheifler.

access control list

X maintains lists of hosts that are allowed access to each server controlling a display. By default, only the local host may use the display, plus any hosts specified in the access control list for that display. This access control list can be changed by clients on the local host. Some server implementations may implement other authorization mechanisms in addition to or instead of this one. The list can currently be found in /etc/X#.hosts, where # is the number of the display. The access control list is also known as the host access list.

active grab

Keyboard keys, the keyboard, pointer buttons, the pointer, and the server can be grabbed for exclusive use by a client, usually for a short time period. An active grab causes pointer and keyboard events to be sent to the grabbing window regardless of the current position of the pointer. See passive grab.

ancestor

If window W is an inferior of window A, then A is an ancestor of W. The parent window, the parent's parent window, and so on are all ancestors of the given window. The root window is the ancestor of all windows on a given screen.

association table

Association tables provide a fast lookup table for data that must be searched frequently. Association tables associate arbitrary information with resource IDs. This is similar to the context manager, but the resource IDs used with association tables are existing resources, not created for the purpose of storing data for later retrieval.

atom

An atom is a unique numeric ID corresponding to a string name. Atoms are used to identify properties, types, and selections in order to avoid the overhead of passing arbitrary length property name strings.

background

The background member of a GC defines a window's background, which consists of either a solid color or a tile pattern. If a window has a background, it will be repainted automatically by the server whenever there is an Expose event on the window. If a window does not have a background, it will be transparent. background can be set using the GCBackground mask, when the GC is created, or by a call to XSetBackground(). Default is 1. See also foreground.

backing store

When a server maintains the contents of a window, the off-screen saved pixels are known as a backing store. This feature is not available on all servers. Use the DoesBackingStore()s macro to determine if this feature is supported.

base font name

A font name used to select a family of fonts whose members may be encoded in various charsets. The CharSetRegistry and CharSetEncoding fields of an XLFD name identify the charset of the font. A base font name may be a full XLFD name, with all fourteen '-' delimiters, or an abbreviated XLFD name containing only the first 13 fields of an XLFD name, up to but not including CharSetRegistry, with or without the thirteenth '-', or a non-XLFD name. Any XLFD fields may contain wild cards. When creating an XFontSet, Xlib accepts from the client a list of one or more base font names which select one or more font families. They are combined with charset names obtained from the encoding of the locale to load the fonts required to render text.

bit gravity

When a window is resized, the contents of the window are not necessarily discarded. It is possible to request the server (though no guarantees are made) to relocate the previous contents to some region of the resized window. This attraction of window contents for some location of a window is known as bit gravity. For example, an application that draws a graph might request that the contents be moved into the lower-left corner, so that the origin of the graph will still appear in the lower-left corner.

bit plane

On a color or gray-scale display, each pixel has more than one bit defined. Data in display memory can be thought of either as pixels (multiple bits per pixel) or as bit planes (one bit plane for each usable bit in the pixel). The bit plane is an array of bits the size of the screen.

bitmap

A bitmap is a pixmap with a depth of one bit. There is no bitmap type in X11. Instead use a pixmap of depth 1.

border

A window can have a border that is zero or more pixels wide. If a window has a border, the border can have a solid color or a tile pattern, and it will be repainted automatically by the server whenever its color or pattern is changed or an Expose event occurs on the window.

button grab

Specifies a pointer grab that occurs only when a specified set of keys and/or buttons is held down. This is analogous to a key grab. See mouse grab.

byte order

The order in which bytes of data are stored in memory is hardware-dependent. For pixmaps and bitmaps, byte order is defined by the server, and clients with different native byte ordering must swap bytes as necessary. For all other parts of the protocol, the byte order is defined by the client, and the server swaps bytes as necessary.

character

A member of a set of elements used for the organization, control, or representation of text (ISO2022, as adapted by XPG3). Note that in ISO2022 terms, a character is not bound to a coded value until it is identified as part of a coded character set.

character glyph

The abstract graphical symbol for a character. Character glyphs may or may not map one-to-one to font glyphs, and may be context-dependent, varying with the adjacent characters. Multiple characters may map to a single character glyph.

character set

A collection of characters.

charset

An encoding with a uniform, state-independent mapping from characters to codepoints. In the ISO2022 framework, this means a coded character set that does not use any shift sequences. (An encoding which uses single shifts is state-independent, but is not uniform.) For display in X, there can be a direct mapping from a charset to one font, if the width of all characters in the charset is either one or two bytes. A text string encoded in an encoding such as Shift-JIS cannot be passed directly to the X server, because the text imaging requests accept only single-width charsets (either 8 or 16 bits). Charsets which meet these restrictions can serve as “font charsets”. Font charsets strictly speaking map font indices to font glyphs, not characters to character glyphs. Note that a single font charset is sometimes used as the encoding of a locale, for example, ISO8859-1.

children

The children of a window are its first-level subwindows. All of these windows were created with the same window as parent. A client creates its top-level window as a child of the root window.

class

There are two uses of the term class in X: window class and visual class. The window class specifies whether a window is InputOnly or InputOutput. See Chapter 2, “X Concepts” for details. The visual class specifies the color model that is used by a window. See Chapter 7, “Color” for details.

client

An application program connects to the window system server by an interprocess communication (IPC) path such as a TCP connection or a shared memory buffer. This program is referred to as a client of the window system server. More precisely, the client is the IPC path itself; a program with multiple paths open to the server is viewed as multiple clients by the protocol. Server resources survive only as long as the connection remains intact, not as long as a client program remains running. Normally the connection and the program terminate concurrently, but the client's resources may live on if XChangeCloseDownMode has been called.

clip mask

In many graphics routines, 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 clip mask or clipping region. Output to child windows is automatically clipped to the borders of the parent unless subwindow_mode of the GC is IncludeInferiors. Therefore, the borders of the parent can be thought of as a clip mask or clipping region.

clipping region

See clip mask.

coded character

A character bound to a codepoint.

coded character set

A set of unambiguous rules that establishes a character set and the one-to-one relationship between each character of the set and its bit representation. (ISO2022, as adapted by XPG3) A definition of a one-to-one mapping of a set of characters to a set of codepoints. Some encodings, such as Compound Text, have more than one bit representation for a given character, and thus are not considered coded character sets.

codepoint

The coded representation of a single character in a coded character set.

colorcell

An entry in a colormap is known as a colorcell. An entry contains three values specifying red, green, and blue intensities. These values are always 16-bit unsigned numbers, with zero being minimum intensity. The values are truncated or scaled by the server to match the display hardware. See also colormap.

colormap

A colormap consists of a set of colorcells. A pixel value indexes into the colormap to produce intensities of red, green, and blue to be displayed. Depending on hardware limitations, one or more colormaps may be installed at one time, such that windows associated with those maps display with true colors. Regardless of the number of installable colormaps, any number of virtual colormaps can be created. When needed, a virtual colormap can be installed and the existing installed colormap might have to be deinstalled. The colormap on most systems is a limited resource that should be conserved by allocating read-only colorcells whenever possible and by selecting RGB values from the predefined color database. Read-only cells may be shared between clients. See also colorcell, DirectColor, GrayScale, PseudoColor, StaticColor, StaticGray, and TrueColor.

connection

The IPC path between the server and client is known as a connection. A client usually (but not necessarily) has one connection 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 visible 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.

coordinate system

The coordinate system has X horizontal and Y vertical pixels, with the origin (0,0) at the upper left. Coordinates are discrete. Each window and pixmap has its own coordinate system. For a window with a border, the origin is inside the border.

cursor

A cursor is the visible shape of the pointer on a screen. It consists of a hotspot, a shape bitmap, a mask bitmap, and a pair of pixel values. The cursor defined for a window controls the visible appearance of the pointer when the pointer is in that window.

cut buffer

Cut buffers are a simple but limited method of client communication, sometimes used instead of the selection mechanism. Cut buffers are properties of the root window of screen 0 of a display. They rely on a prior agreement between the two clients regarding the format of the data to be placed in the cut buffers. The data that can be placed in a single cut buffer is limited to the maximum size of a single property. See selection.

depth

The depth of a window or pixmap is the number of planes that are to be used to represent gray scales or color within a window.

descendants

See inferiors.

device

Keyboards, mice, tablets, track-balls, button boxes, etc. are all collectively known as input devices.

DirectColor

DirectColor is a visual class in which a pixel value is decomposed into three separate subfields for colormap indexing. One subfield indexes an array to produce red intensity values; the second subfield indexes a second array to produce blue intensity values; and the third subfield indexes a third array to produce green intensity values. The RGB (red, green, and blue) values in the colormap entry can be changed dynamically. This visual class is normally found on high performance color workstations. (XGetVisualInfo(), XMatchVisualInfo())

display

A display is a set of one or more screens that are driven by a single X server. The Xlib Display structure contains all information about the particular display and its screens as well as the state that Xlib needs to communicate with the display over a particular connection.

display function

See logical function.

drawable

Both windows and pixmaps may be used as destinations in graphics operations. These are collectively known as drawables.

encoding

A set of unambiguous rules that establishes a character set and a relationship between the characters and their bit representations. The character set does not have to be fixed to a finite pre-defined set of characters. Examples are an ISO2022 graphic set, a state-independent or state-dependent combination of graphic sets, possibly including control sets, and the X Compound Text encoding. In X, encodings are identified by a string which appears as: the CharSetRegistry and CharSetEncoding components of an XLFD name; the name of a charset of the locale for which a font could not be found; or an atom which identifies the encoding of a text property or which names an encoding for a text selection target type. Encoding names should be composed of characters from the X Portable Character Set.

escapement

The escapement of a string is the distance in pixels in the primary draw direction from the drawing origin to the origin of the next character (that is, the one following the given string) to be drawn.

event

Clients are informed of device input or client request side effects asynchronously via events. Events are grouped into types; events are never sent to a client by the server unless the client has specifically asked to be informed of that type of event. However, other clients can force events of any type to be sent to any clients. Events are typically reported relative to a window.

event mask

Events are requested relative to a window. The set of event types a client requests relative to a window is described using an event mask. See do_not_propagate_mask and event_mask.

event propagation

Device-related events propagate from the source window to ancestor windows until a window that has selected that type of event is reached or until the event is discarded explicitly in a do_not_propagate_mask attribute.

event source

The smallest window containing the pointer is the source of a device-related event.

event window

An event window specifies the ID of the window in which an event appears to have occurred. See source window.

exposure

Window exposure occurs when a window is first mapped or when another window that obscures it is unmapped, resized, or moved. Servers do not guarantee to preserve the contents of windows when windows are obscured or reconfigured. Expose events are sent to clients to inform them when contents of regions of windows have been lost and need to be regenerated.

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 expected. Extensions can perform at the same level as the core Xlib.

font

The font member of a GC specifies which font to use in graphics requests. A font is an array of characters or other bitmap shapes such as cursors. font can be set using the GCFont mask, when the GC is created, or by a call to XSetFont(). The default font is installation dependent.

font glyph

The abstract graphical symbol for an index into a font.

foreground

The foreground member of a GC defines the pixel value that will actually be used for drawing pictures or text. foreground can be set using the GCForeground mask, when the GC is created, or by a call to XSetForeground(). Default is 0. See also background.

frozen events

Clients can freeze event processing while they change the screen by grabbing the keyboard or pointer with a certain mode. These events are queued in the server (not in Xlib) until an XAllowEvents() call with a counteracting mode is given.

GC

The term GC is used as a shorthand for graphics context. See graphics context.

glyph

An glyph is an identified abstract graphical symbol independent of any actual image. (ISO/IEC/DIS 9541-1) An abstract visual representation of a graphic character, not bound to a codepoint.

glyph image

An image of a glyph, as obtained from a glyph representation displayed on a presentation surface. (ISO/IEC/DIS 9541-1)

grab

Keyboard keys, the keyboard, pointer buttons, the pointer, and the server can be grabbed for exclusive use by a client, usually for a short time period. 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. See active grab and passive grab.

graphics context

Various information for graphics output is stored in a graphics context (GC), such as foreground pixel, background pixel, line width, clipping region, etc. Everything drawn to a window or pixmap is modified by the GC used in the drawing request. GCs are created or altered with XChangeGC(), XCopyGC(), and XCreateGC().

gravity

Controls the repositioning of a resized window's contents (bit gravity) or of a resized parent window's subwindows (window gravity). See bit gravity and window gravity.

GrayScale

GrayScale is a visual class 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 dynamically. GrayScale can be viewed as a degenerate case of PseudoColor. (XGetVisualInfo(), XMatchVisualInfo())

hint

Certain properties, such as the preferred size of a window, are referred to as hints, since the window manager makes no guarantee that it will honor them. See XA_WM_HINTS, XA_WM_NORMAL_HINTS, XA_WM_SIZE_HINTS, and XA_WM_ZOOM_HINTS.

host access list

See access control list.

host portable character encoding

The encoding of the X Portable Character Set on the host. The encoding itself is not defined by this standard, but the encoding must be the same in all locales supported by Xlib on the host. If a string is said to be in the Host Portable Character Encoding, then it only contains characters from the X Portable Character Set, in the host encoding.

hotspot

A cursor has an associated hotspot that defines the point in the cursor which corresponds to the coordinates reported for the pointer.

icon

An icon is a small marker window that indicates that a larger “main” window exists and is available but is not currently mapped on the screen.

identifier

Each resource has an identifier or ID, a unique value that clients use to name the resource. Any client can use a resource if it knows the resource ID.

inferiors

The inferiors of a window are all of the subwindows nested below it: the children, the children's children, etc. The term descendants is a synonym.

input focus

See keyboard focus.

input manager

Control over keyboard input may be provided by an input manager client. This job may also be done by the window manager.

InputOnly window

A window that cannot be used for graphics requests is called an InputOnly window. InputOnly windows are invisible and can be used to control such things as cursors, input event generation, and grabbing. InputOnly windows cannot have InputOutput windows as inferiors.

InputOutput window

The normal kind of window that is used for both input and output is called an InputOutput window. It usually has a background. InputOutput windows can have both InputOutput and InputOnly windows as inferiors.

internationalization

The process of making software adaptable to the requirements of different native languages, local customs, and character string encodings. Making a computer program adaptable to different locales without program source modifications or recompilation.

ISO2022

ISO standard for code extension techniques for 7-bit and 8-bit coded character sets.

Latin-1

The coded character set defined by the ISO8859-1 standard.

latin portable character encoding

The encoding of the X Portable Character Set using the Latin-1 codepoints plus ASCII control characters. If a string is said to be in the Latin Portable Character Encoding, then it only contains characters from the X Portable Character Set, not all of Latin-1.

locale

The international environment of a computer program defining the “localized” behavior of that program at run-time. This information can be established from one or more sets of localization data. ANSI C defines locale-specific processing by C system library calls. See ANSI C and the X/Open Portability Guide specifications for more details. In this specification, on implementations that conform to the ANSI C library, the “current locale” is the current setting of the LC_CTYPE setlocale category. Associated with each locale is a text encoding. When text is processed in the context of a locale, the text must be in the encoding of the locale. The current locale affects Xlib in its encoding and processing of input method text, encoding of resource files and values, encoding and imaging of text strings, and encoding and decoding for interclient text communication.

localization

The process of establishing information within a computer system specific to the operation of particular native languages, local customs and coded character sets. (XPG3)

locale name

The identifier used to select the desired locale for the host C library and X library functions. On ANSI C library compliant systems, the locale argument to the setlocale function.

key grab

Specifies a keyboard grab that occurs only when a certain key or key combination is pressed. This is analogous to a button grab. See keyboard grab.

keyboard focus

The keyboard focus is the window that receives main keyboard input. By default, the focus is the root window, which has the effect of sending input to the window that is being pointed to by the mouse. It is possible to attach the keyboard input to a specific window with XSetInputFocus(). Events are then sent to the window independent of the pointer position or, if the owner_events argument is True, to the window containing the pointer if it is owned by the same client as the focus window.

keyboard grab

All keyboard input is sent to a specific window (or client, depending on owner_events) when the keyboard is grabbed. This is analogous to a mouse grab. This is very much like a temporary keyboard focus window.

keyboard vector

A keyboard vector represents, in the event structure, the state of the keyboard; the vector consists of 32 bytes of data, with one bit for each keyboard key.

keycode

A keycode is a code in the range [8,255], inclusive, that represents a physical or logical key on the keyboard. The mapping between keys and keycodes cannot be changed. A list of keysyms is associated with each keycode.

keysym

A keysym is a #defined symbol which is a portable representation of the symbol on the cap of a key. Each key may have several keysyms, corresponding to the key when various modifier keys are pressed. You should interpret key events according to the keysym returned by XLookupString() or XLookupKeysym(), since this translates server-dependent keycodes into portable keysyms. See keycode.

listener

A listener-style window manager sets the keyboard focus to a particular window when that window is clicked on with a pointer button. This is the window manager style used with the Apple Macintosh™.

logical function

Logical functions control how the source pixel values generated by a graphics request are combined with the old destination pixel values already present on the screen or drawable to result in the final destination pixel values. A logical function can be changed by a call to XSetFunction(). Sometimes called raster operations, raster ops, or display functions.

mapping

A window is said to be mapped if a XMapWindow() or XMapRaised() call has been performed on it. Unmapped windows are never viewable. Mapping makes a window eligible for display. The window will actually be displayed if the following conditions are met: (1) all its ancestors are mapped and (2) it is not obscured by siblings.

mask

A mask specifies which values in a specified structure should be read when updating the resource values. One bit in the mask is assigned to every member of its corresponding structure. For example, CWBackgroundPixmap mask is used to indicate that the background_pixmap member of the specified window attributes structure is to be read and the corresponding member in the resource changed. See structure.

modifier key

A key such as Shift or Control that can modify the meaning of a key event. Shift, Control, Meta, Super, Hyper, Alt, Compose, Apple, Caps Lock, Shift Lock, and similar keys are called modifier keys.

monochrome

A monochrome screen has only two colors: black and white. Monochrome is a special case of the StaticGray visual class, in which there!!! are only two colormap entries.

mouse grab

All mouse input is sent to a specific window (or client, depending on owner_events) when the mouse is grabbed. This is analogous to a keyboard grab.

multibyte

A character whose codepoint is stored in more than one byte; any encoding which can contain multibyte characters; text in a multibyte encoding. The “char *” null-terminated string datatype in ANSI C. Note that references in this document to multibyte strings imply only that the strings may contain multibyte characters.

obscures

Window A obscures window B if 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.

occludes

Window A occludes window B if both are mapped, if A is higher in the global stacking order, and if the rectangle defined by the outside edges of A intersects the rectangle defined by the outside edges of B. The (fine) distinction between the terms obscures and occludes is that for obscures, the windows have to be mapped, while for occludes, they do not. Also note that window borders are included in the calculation. Note that InputOnly windows never obscure other windows but can occlude other windows.

owner client

Selections transfer arbitrary information between two clients. An owner client owns the data representing the value of a selection, and a requestor client wants it. See selection.

padding

Some bytes are inserted in the data stream to maintain alignment of the protocol requests on natural boundaries. This padding increases ease of portability to some machine architectures.

parent window

Each new window is created with reference to another previously created window. The new window is referred to as the child, and the reference window as the parent. If C is a child of P, then P is the parent of C. Only the portion of the child that overlaps the parent is viewable.

passive grab

Keyboard keys, the keyboard, pointer buttons, the pointer, and the server can be grabbed for exclusive use by a client, usually for a short time period. A passive grab causes an active grab to begin when a certain key or button combination is pressed. The grab becomes active when the key or button is actually pressed. Before the active grab takes place, nothing has changed. See active grab.

pixel value

A pixel value is an N-bit value, where N is the number of bit planes used in a particular window or pixmap. For a window, a pixel value indexes a colormap to derive an actual color to be displayed. For a pixmap, a pixel value will be interpreted as a color in the same way when it is copied into a window.

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 (2N-1), 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 a window is thought of as a stack of bitmaps, each bitmap is called a plane.

plane_mask

Graphics operations can be restricted to affect only a subset of bit planes in a drawable. The plane_mask member of a GC is a bit mask describing which planes are to be modified. Default is all ones. plane_mask can be set using the GCPlaneMask mask, when the GC is created, or it can be changed by a call to XSetPlaneMask().

pointer

The pointer is the pointing device currently attached to the cursor and tracked on the screens. This may be a mouse, tablet, track-ball, or joystick, among other things.

pointer grab

A client can actively grab control of the pointer, causing button and motion events to be sent to the grabbing client rather than to the client indicated by the pointer.

pointing device

A pointing device is typically a mouse or tablet or some other device with effective two-dimensional motion. There is only one visible cursor defined by the core protocol, and it tracks whatever pointing device is currently attached as the pointer.

position

A window has a position, which locates its upper-left corner relative to its parent's corner.

POSIX

Portable Operating System Interface, ISO/IEC 9945-1 (IEEE Std 1003.1).

POSIX Portable Filename Character Set

The set of 65 characters which can be used in naming files on a POSIX-compliant host that are correctly processed in all locales. The set is: a..z A..Z 0..9 ._-

shift sequence

ISO2022 defines control characters and escape sequences which temporarily (single shift) or permanently (locking shift) cause a different character set to be in effect (“invoking” a character set).

property

Windows may have associated properties, each consisting 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 data storage and intercommunication mechanism for clients. There is, however, a list of predefined properties and property types so that clients might share information such as resize hints, program names, and icon formats with a window manager via properties. In order to avoid passing arbitrary length property name strings, each property name is associated with a corresponding integer value known as an atom. See also atom.

property list

The property list of a window is the list of properties that have been defined for that window.

PseudoColor

PseudoColor is a visual class in which a pixel value indexes the colormap entry 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. (XGetVisualInfo(), XMatchVisualInfo())

quark

A quark is an integer ID that identifies a name, class, or type string for the resource manager. Like atoms and resource IDs, quarks eliminate the need to pass strings of arbitrary length over the network. The quark type is XrmQuark, and the types XrmName, XrmClass, and XrmRepresentation are also defined to be XrmQuark.

raise

Changing the stacking order of a window so as to occlude all sibling windows is to raise that window.

raster operation

See logical function.

real estate

A window management style characterized by the input being sent to whichever window the pointer is in. This is the most common style of input management used in X.

rectangle

A rectangle specified by [x,y,w,h] has an (infinitely thin) outline path with corners at [x,y], [x+w,y], [x+w,y+h] and [x,y+h]. When a rectangle is filled, the lower-right edges are not drawn. For example, if w=h=0, nothing would be drawn. For w=h=1, a single pixel would be drawn.

redirect

Window managers (or other clients) may wish 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 the window manager, rather than actually being performed. Then the window manager (or other client that redirected the input) is expected to decide whether to allow, modify, or deny the requested operation before making the call itself.

reparenting

The window manager often reparents the top-level windows of each application in order to add a titlebar and perhaps resize boxes. In other words, a window with a titlebar is inserted between the root window and each top-level window. See also save-set.

reply

Information requested by a client, by routines whose names include the word Query, is sent back to the client with a reply. Both events and replies are multiplexed on the same connection. Requests that require replies are known as round-trip requests. Most requests do not generate replies. Some requests generate multiple replies. See round-trip request.

request

A command to the server is called a request. It is a single block of data sent over the connection to the server.

requestor client

Selections transfer arbitrary information between two clients. An owner client owns the data representing the value of a selection, and a requestor client wants it. See selection.

resource

Windows, pixmaps, cursors, fonts, graphics contexts, and colormaps are known as resources. They all have unique identifiers (IDs) associated with them for naming purposes. The lifetime of a resource is bounded by the lifetime of the connection over which the resource was created.

resource manager

Every application should provide command line options that allow users to set colors or patterns for the window border and background; set foreground colors for drawing; start the application at a desired size, position, and configuration; select fonts; and so on. An application must also allow users to specify their own default values (user preferences) for each of these options. There are three and sometimes four sets of options that need to be read and merged: the program's defaults, the user's defaults stored in the root window's XA_RESOURCE_MANAGER property or in the user's .Xdefaults file, and the command line arguments. The order in which the various options are merged is important. A value for an option in the user's defaults should override the program's default for that option, but a value on the command line would override both the program's and the user's default value. The routines and database structures used for managing user preferences are collectively referred to as the resource manager.

RGB values

Red, green, and blue intensity values are used to define a color. These values are always represented as 16-bit unsigned numbers, with 0 the minimum intensity and 65535 the maximum intensity. The X server scales these values to match the display hardware.

root

The root of a window, pixmap, or graphics context (GC) is the same as the root of whatever drawable was used when the window, pixmap, or GC was created. These resources can be used only on the screen indicated by this window. See root window.

root window

Each screen has a root window covering it. It cannot be reconfigured or unmapped but otherwise acts as a full-fledged window. A root window has no parent.

round-trip request

A request to the server that generates a reply is known as a round-trip request. Requests that require replies should be avoided when possible since they introduce network delays. See reply.

save-set

The save-set of a client is a list of other clients' windows which, if they are inferiors of one of the client's windows at connection close, should not be destroyed and which should be reparented and remapped if the client is unmapped. Save-sets are typically used by window managers to avoid lost windows if the manager should terminate abnormally. See reparenting for more background information.

scan line

A scan line is a list of pixel or bit values viewed as a horizontal row (all values having the same Y coordinate) of an image, with the values ordered by increasing X coordinate values.

scan line order

An image represented in scan line order contains scan lines ordered by increasing Y coordinate values.

screen

A server may provide several independent screens, which may or may not have physically independent monitors. For instance, it is possible to treat a color monitor as if it were two screens, one color and the other black and white. There is only a single keyboard and pointer shared among the screens. A Screen structure contains the information about that screen and is a member of the Display structure.

selection

Selections are a means of communication between clients using properties and events. From the user's perspective, a selection is an item of data which can be highlighted in one instance of an application and pasted into another instance of the same or a different application. The client that highlights the data is the owner, and the client into which the data is pasted is the requestor. Properties are used to store the selection data and the type of the data, while events are used to synchronize the transaction and to allow the requestor to indicate the type it prefers for the data and to allow the owner to convert the data to the indicated type if possible. See cut buffer.

server

The server provides the basic windowing mechanism. It handles IPC connections from clients, demultiplexes graphics requests onto the screens, and multiplexes input back to the appropriate clients. It controls a single keyboard and pointer and one or more screens that make up a single display.

server grab

The server can be grabbed by a single client for exclusive use. This prevents processing of any requests from other client connections until the grab is complete. This is typically a transient state to perform such tasks as rubber-banding and pop-up menus or to execute requests indivisibly.

sibling

Children of the same parent window are known as sibling windows.

source window

A source window specifies the ID of the window in which an event originally happens. See event window.

stacking order

Sibling windows may stack on top of each other, obscuring lower windows. This is similar to papers on a desk. The relationship between sibling windows is known as the stacking order. The first window in the stacking order is the window on top.

state-dependent encoding

An encoding in which an invocation of a charset can apply to multiple characters in sequence. A state-dependent encoding begins in an “initial state” and enters other “shift states” when specific “shift sequences” are encountered in the byte sequence. In ISO2022 terms, this means use of locking shifts, not single shifts.

state-independent encoding

Any encoding in which the invocations of the charsets are fixed, or span only a single character. In ISO2022 terms, this means use of at most single shifts, not locking shifts.

STRING encoding

Latin-1, plus tab and newline.

StaticColor

StaticColor is a visual class which represents a multiplane color screen with a predefined and read-only hardware colormap. It can be viewed as a degenerate case of PseudoColor. (XGetVisualInfo(), XMatchVisualInfo())

StaticGray

StaticGray is a visual class which represents a multiplane monochrome screen with a predefined and read-only hardware colormap. It can be viewed as a degenerate case of GrayScale, in which the gray values are predefined and read-only. Typically, the values are linearly increasing ramps. (XGetVisualInfo(), XMatchVisualInfo())

Status

Many Xlib functions return a Status of zero if it fails and nonzero if it succeeds. If the function does not succeed, its arguments are not changed.

stipple

The stipple member of a GC defines a single-plane pixmap that is used to tile a region. Bits set to 1 in the stipple are drawn with the foreground pixel value; bits set to 0, with the background pixel value. stipple can be set using the GCStipple mask, when the GC is created, or by a call to XSetStipple(). Default is the pixmap filled with ones. See tile.

STRING encoding

Latin-1, plus tab and newline.

structure

Pointers to structures are the major way of specifying data to and returning data from Xlib routines. If the routine returns data, the returned value will be a pointer to the data structure, unless the routine returns more then one structure, in which case one or all of the structures will be arguments. When setting the characteristics of an X resource, such as a set of window attributes or a graphics context, both a structure and a mask are specified as arguments. See mask.

subwindow_mode

The subwindow_mode member of a GC controls whether subwindows obscure their parent. subwindow_mode can be set using the GCSubwindowMode mask, when the GC is created, or by a call to XSetSubwindowMode(). Possible values are ClipByChildren (the default) or IncludeInferiors.

tile

The tile member of a GC defines a pixmap used for patterning an area. A tile has the same depth as the drawable it is used to pattern. tile can be set using the GCTile mask, when the GC is created, or by a call to XSetTile(). Default is the pixmap is filled with the foreground pixel. See stipple.

time

A time value in X is expressed in milliseconds, typically since the last server reset. Time values wrap around (after about 49.7 days). One time value, represented by the constant CurrentTime, is used by clients to represent the current server time.

top-level window

A child of the root window is referred to as a top-level window.

TrueColor

TrueColor is a visual class which represents a high performance multiplane display with predefined and read-only RGB values in its hardware colormap. It can be viewed as a degenerate case of DirectColor, in which the subfields in the pixel value directly encode the corresponding RGB values. Typically, the values are linearly increasing ramps. (XGetVisualInfo(), XMatchVisualInfo())

type property

A type property is used to identify the interpretation of property data. Types are completely uninterpreted by the server; they are solely for the benefit of clients.

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, since it may be obscured by other windows.

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 obscured by any other window.

visual

The specifications for color handling for a drawable, including visual class, depth, RGB/pixel, etc., are collectively referred to as a visual and are stored in a structure of type Visual. The visual accounts for the differences between various types of hardware in determining the way pixel values are translated into visible colors within a window. A screen may support only one of several types of visuals.

visual class

This attribute accounts for the differences between various types of display hardware in determining the way in which pixel values are translated into visible colors within a particular window. See DirectColor, GrayScale, PseudoColor, StaticColor, StaticGray, and TrueColor.

whitespace

Any spacing character. On implementations that conform to the ANSI C library, whitespace is any character for which isspace returns True.

window

An X server controls a bitmapped screen. In order to make it easier to view and control many different tasks at the same time, this screen can be divided up into smaller areas called windows. A window is a rectangular area of any size that works in several ways like a miniature screen. Windows in the screen can be arranged so they all are visible or so they cover each other completely or partially. Each window can be involved in a different activity, and the windows currently in use are placed so they are at least partially visible.

window gravity

When windows are resized, subwindows may be repositioned automatically relative to an edge, a corner, or the center of 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 is provided by a window manager client. The window manager has authority over the arrangement of windows on the screen and the user interface for selecting which window receives input. See also redirect.

X Portable Character Set

A basic set of 97 characters which are assumed to exist in all locales supported by Xlib. This set contains the following characters: a..z A..Z 0..9 !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ <space>, <tab>, and <newline> This is the left/lower half (also called the G0 set) of the graphic character set of ISO8859-1 plus <space>, <tab>, and <newline>. It is also the set of graphic characters in 7-bit ASCII plus the same three control characters. The actual encoding of these characters on the host is system dependent; see the Host Portable Character Encoding.

XLFD

The X Logical Font Description Conventions that define a standard syntax for structured font names.

XYPixmap

XYPixmap specifies the format for an image. The data for an image is said to be in XYPixmap format if it is organized as a set of bitmaps representing individual bit planes. (XCreateImage(), XGetImage(), XPutImage())

zoomed window

Some applications not only have a normal size for their top-level window and an icon but also have a zoomed window size. This could be used in a painting program (similar to the MacPaint™ fat bits). The zoomed window size preferences can be specified in the window manager hints.

ZPixmap

ZPixmap specifies the format for an image. The data for an image is said to be in ZPixmap format if it is organized as a set of pixel values in scan line order. (XGetImage(), XPutImage())