HOME

TheInfoList



OR:

In
computing Computing is any goal-oriented activity requiring, benefiting from, or creating computing machinery. It includes the study and experimentation of algorithmic processes, and development of both hardware and software. Computing has scientific, e ...
, the Inter-Client Communication Conventions Manual (ICCCM or I39L short for "I", 39 letters and "L")The X-Windows Disaster
Don Hopkins, UNIX-HATERS Handbook
is a legacy standard protocol for the
X Window System The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wit ...
. It specifies conventions for clients of a common X server about selections and cut buffers, communication with the window manager and
session manager Session Manager Subsystem, or , is a component of the Microsoft Windows NT family of operating systems, starting in Windows NT 3.1. It is executed during the startup process of those operating systems (it is the first user-mode process started b ...
, manipulation of shared resources, and color characterization. The X Session Manager Protocol (XSMP) is a successor to the ICCCM standard.


History

It was designed by
David S. H. Rosenthal David Stuart Holmes Rosenthal (born 1948 in Cambridge, United Kingdom) is a British-American computer scientist. Biography Rosenthal is the son of Michael David Holmes Rosenthal and Marjorie Mary "Molly" Rosenthal (both deceased). His brother M ...
of the
MIT X Consortium The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems. X provides the basic framework for a GUI environment: drawing and moving windows on the display device and interacting wit ...
from 1987 to 1989. A draft version appeared in March 1988 i
X11R2
This was removed fro
X11R3
Version 1.0 was released in July 1989 as part o
X11R4
Three window managers in the X11R4 contrib directory implemented support for ICCCM:
gwm
olwm olwm (OPEN LOOK Window Manager) was the default stacking window manager for OpenWindows, the original X11 desktop environment included with SunOS and Solaris. Its unique characteristic is its implementation of the OPEN LOOK look and feel. Sco ...
an
tekwm
Version 1.1 contains an update for color characterization and appeared i
X11R5
Version 2.0 has many changes in the areas of window management, selections,
session management In computer science and networking in particular, a session is a time-delimited two-way link, a practical (relatively high) layer in the tcp/ip protocol enabling interactive expression and information exchange between two or more communication de ...
, and resource sharing. It was released in May 1994 as part o
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 environment In computing, a desktop environment (DE) is an implementation of the desktop metaphor made of a bundle of programs running on top of a computer operating system that share a common graphical user interface (GUI), sometimes described as a graphica ...
s. This isolates application programmers from working directly with the ICCCM itself, as this functionality is delegated to the implementing toolkit.


Criticism

The ICCCM has received some criticism for being ambiguous and difficult to implement correctly. This was acknowledged in the preface of version 2.0, stating that it aimed "to fix problems with earlier drafts, and to improve readability and understandability". Furthermore, some parts may be obsolete or no longer practical to implement. The
Extended Window Manager Hints Extended Window Manager Hints, a.k.a. NetWM, is an X Window System standard for the communication between window managers and applications. It builds on the functionality of the Inter-Client Communication Conventions Manual (ICCCM). These standards ...
(EWMH) is a more recent standard, which, according to its introduction: "builds on the ICCCM, which defines window manager interactions at a lower level. The ICCCM does not provide ways to implement many features that modern desktop users expect." But it also states: "Clients which aim to fulfill this specification MUST adhere to the ICCCM on which this specification builds." insofar the EWMH doesn't overrule.
Freedesktop.org freedesktop.org (fd.o) is a project to work on interoperability and shared base technology for Free software, free-software desktop environments for the X Window System (X11) and Wayland (display server protocol), Wayland on Linux and other Uni ...
notes that "historically, X clients have not handled cut-and-paste in a consistent way" and formulates additional guidelines in
clipboards-spec


List of Window Managers that are ICCCM Compliant

* aewm — a
stacking window manager A stacking window manager (also called floating window manager) is a window manager that draws and allows windows to overlap, without using a compositing algorithm. All window managers that allow the overlapping of windows but are not compositing ...
. * alloywm — partial compliance. * awesome — a
dynamic window manager In computing, a dynamic window manager is a tiling window manager where windows are tiled based on preset layouts between which the user can switch. Layouts typically have a main area and a secondary area. The main area usually shows one window, b ...
that is configured in Lua. * Blackbox *
Compiz Compiz () is a compositing window manager for the X Window System, using 3D graphics hardware to create fast compositing desktop effects for window management. Effects, such as a minimization animation or a cube workspace, are implemented as lo ...
*
dwm dwm is a minimalist dynamic window manager for the X Window System developed by Suckless that has influenced the development of several other X window managers, including xmonad and awesome. It is externally similar to wmii, but internally ...
— can be configured for compliance *
enlightenment Enlightenment or enlighten may refer to: Age of Enlightenment * Age of Enlightenment, period in Western intellectual history from the late 17th to late 18th century, centered in France but also encompassing (alphabetically by country or culture): ...
— also serves as a
Wayland compositor Wayland is a communication protocol that specifies the communication between a display server and its clients, as well as a C library implementation of that protocol. A display server using the Wayland protocol is called 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 Plasma is a desktop environment by KDE, and can refer to: * KDE Plasma 5 (2014–today) * KDE Plasma 4 (2008–2015) * Plasma Mobile for smartphones * Plasma Bigscreen Plasma Bigscreen is a software project from KDE which contains an interface op ...
. *
Metacity Metacity was the default window manager used by the GNOME 2 desktop environment until it was replaced by Mutter in GNOME 3. It is still used by GNOME Flashback, a session for GNOME 3 that provides a similar user experience to the Gnome 2.x serie ...
— default window manager of
GNOME 2 GNOME 2 is the second major release of the GNOME desktop environment. Building upon the release of GNOME 1, development of GNOME 2 focused on a greater design-oriented approach that simplified and standardized elements of the environment. It also ...
. * musca * Openbox — the default window manager used by LXDE and LXQt. *
vtwm Vtwm (the Virtual Tabbed Window Manager) is an X window manager that was developed from the twm codebase. The first release was in 1990, and it is very much an "old school" window manager, lacking desktop environment features. It added features ...
* wmfs * xfwm * xmonad


References


External links


Inter-Client Communication Conventions Manual, Version 2.0

Inter-Client Communication Conventions Manual
Version 2.0 {{XWinSys Inter-process communication X Window System