Inter-Client Communication Conventions Manual
In computing, the Inter-Client Communication Conventions Manual (ICCCM or I39L short for "I", 39 letters and "L")[1] is a standard protocol for the X Window System. It specifies communication for clients of a common X server. It is primarily used for communication between the window manager and the X server's other clients.
History
It was designed by David S. H. Rosenthal of the MIT X Consortium from 1987 to 1989. A draft version appeared in March 1988 in X11R2. This was removed from X11R3. Version 1.0 was released in July 1989 as part of X11R4. Three window managers in the X11R4 contrib directory implemented support for ICCCM: gwm, olwm and tekwm. An update for color characterization appeared in X11R5. Version 2.0 has many changes in the areas of window management, selections, session management, and resource sharing. This was released as part of X11R6.
Background
X deliberately specifies "mechanism, not policy" for how windows interact. As such, an additional specification beyond the X protocol itself was needed for client interoperation.
Features
The ICCCM specifies cut and paste buffers, window manager interaction, session management, how to manipulate shared resources and how to manage device colours. These low-level functions are generally implemented within widget toolkits or desktop environments. This isolates application programmers from working directly with the ICCCM itself, as this functionality is delegated to the implementing toolkit.
Criticism
![]() |
The ICCCM is notorious for being ambiguous and difficult to correctly implement.[2] Furthermore, some parts are obsolete or no longer practical to implement.[3]
Efforts to update and clarify the ICCCM for current needs have resulted in the Extended Window Manager Hints (EWMH), which has gained fairly broad acceptance and continues to be extended as the need arises.[citation needed]
List of Window Managers that are ICCCM Compliant
![]() |
- aewm — a stacking window manager.
- alloywm — partial compliance.
- awesome — a dynamic window manager that is configured in Lua.
- blackbox (version 0.65 and later) — a stacking window manager that was later discontinued.
- Compiz
- dwm — can be configured for compliance
- enlightenment — also serves as a Wayland compositor.
- evilwm — partial compliance
- EXWM (Emacs X Window Manager) — features ICCCM and EWMH compliance
- fvwm
- IceWM
- KWin — default window manager and Wayland compositor of KDE Plasma.
- Metacity — default window manager of GNOME 2.
- musca
- Openbox — the default window manager used by LXDE and LXQt.
- vtwm
- wmfs
- xfwm
- xmonad