Chapter 14: Inter-Client Communication Functions

The Inter-Client Communication Conventions Manual, hereafter referred to as the ICCCM, details the X Consortium approved conventions that govern inter-client communications. These conventions ensure peer-to-peer client cooperation in the use of selections, cut buffers, and shared resources as well as client cooperation with window and session managers. For further information, see the Inter-Client Communication Conventions Manual.

Xlib provides a number of standard properties and programming interfaces that are ICCCM compliant. The predefined atoms for some of these properties are defined in the X11/Xatom.h header file, where to avoid name conflicts with user symbols their name has an XA_ prefix. For further information about atoms and properties, see section "Properties and Atoms".

Xlib's selection and cut buffer mechanisms provide the primary programming interfaces by which peer client applications communicate with each other (see sections "Selections" and "Using Cut Buffers"). The functions discussed in this chapter provide the primary programming interfaces by which client applications communicate with their window and session managers as well as share standard colormaps.

The standard properties that are of special interest for communicating with window and session managers are:

Name Type Format Description

WM_CLASS STRING 8 Set by application programs to allow window and session managers to obtain the application's resources from the resource database.
WM_CLIENT_MACHINE TEXT The string name of the machine on which the client application is running.
WM_COLORMAP_WINDOWS WINDOW 32 The list of window IDs that may need a different colormap than that of their top-level window.
WM_COMMAND TEXT The command and arguments, null-separated, used to invoke the application.
WM_HINTS WM_HINTS 32 Additional hints set by the client for use by the window manager. The C type of this property is XWMHints.
WM_ICON_NAME TEXT The name to be used in an icon.
WM_ICON_SIZE WM_ICON_SIZE 32 The window manager may set this property on the root window to specify the icon sizes it supports. The C type of this property is XIconSize.
WM_NAME TEXT The name of the application.
WM_NORMAL_HINTS WM_SIZE_HINTS 32 Size hints for a window in its normal state. The C type of this property is XSizeHints.
WM_PROTOCOLS ATOM 32 List of atoms that identify the communications protocols between the client and window manager in which the client is willing to participate.
WM_STATE WM_STATE 32 Intended for communication between window and session managers only.
WM_TRANSIENT_FOR WINDOW 32 Set by application programs to indicate to the window manager that a transient top-level window, such as a dialog box.

The remainder of this chapter discusses:

Next: Client to Window Manager Communication

Christophe Tronche,