In
computing
Computing is any goal-oriented activity requiring, benefiting from, or creating computer, computing machinery. It includes the study and experimentation of algorithmic processes, and the development of both computer hardware, hardware and softw ...
, the Inter-Client Communication Conventions Manual (ICCCM or I39L short for "I", 39 letters and "L")
[The X-Windows Disaster](_blank)
Don Hopkins, UNIX-HATERS Handbook is a 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 originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
. It specifies conventions for
clients of a common
X server X server may refer to:
* a display server for the X Window System
* X.Org Server, the X.Org Foundation's display server for the X Window System
* HPE Integrity Superdome X Server, a line of HPE Integrity Servers
HPE Integrity Servers is a ser ...
about
selections and cut buffers, communication with the
window manager
A window manager is system software that controls the placement and appearance of window (computing), windows within a windowing system in a graphical user interface. Most window managers are designed to help provide a desktop environment. They ...
and
session manager, manipulation of shared resources, and color characterization.
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 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 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 d ...
, 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 toolkit
A widget toolkit, widget library, GUI toolkit, or UX library is a library (computing), library or a collection of libraries containing a set of graphical control elements (called ''widgets'') used to construct the graphical user interface (GUI) of ...
s 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 graphi ...
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 (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), formerly X Desktop Group (XDG), is a project to work on interoperability and shared base technology for free-software desktop environments for the X Window System (X11) and Wayland on Linux and other Unix-like operatin ...
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.
* alloywm — partial compliance.
*
awesome — a
dynamic window manager 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 loa ...
*
CTWM
In Unix computing, CTWM (Claude's Tab Window Manager) is a stacking window manager for the X Window System in the twm family of window managers. CTWM was created in 1992 by Claude Lecommandeur of EPFL from the source code for twm, which he ex ...
*
dwm — can be configured for compliance
*
enlightenment — 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 composito ...
.
*
evilwm — partial compliance
* EXWM (Emacs X Window Manager) — features ICCCM and EWMH compliance
*
FVWM
The F Virtual Window Manager (FVWM) is a virtual window manager for the X Window System. Originally a twm derivative, FVWM is now a window manager for Unix-like systems.
History
In 1993, during his work analyzing acoustic signatures for the ...
*
IceWM
IceWM is a stacking window manager for the X Window System, originally written by Marko Maček. It was written from scratch in C++ and is released under the terms of the GNU Lesser General Public License.
It is customizable, relatively light ...
*
KWin
KWin is a window manager for the X Window System and a Wayland (display server protocol)#Wayland compositors, Wayland compositor. It is released as a part of KDE Plasma, for which it is the default window manager. KWin can also be used on its o ...
— default window manager and Wayland compositor of
KDE Plasma
KDE Plasma is a Shell (computing), graphical shell developed by the KDE community for Unix-like operating systems. It serves as the interface layer between the user and the operating system, providing a graphical user interface (GUI) and workspa ...
.
*
Metacity — default window manager of
GNOME 2.
*
musca
*
Openbox — the default window manager used by
LXDE
LXDE (abbreviation for Lightweight X11 Desktop Environment) is a Free and open-source software, free desktop environment with comparatively low resource requirements. This makes it especially suitable for use on older or resource-constrained pe ...
and
LXQt
LXQt is a free and open-source software, free and open source lightweight desktop environment. It was formed from the merger of the LXDE and Razor-qt projects.
Like its GTK predecessor LXDE, LXQt does not ship or develop its own window manager ...
.
*
vtwm
*
wmfs
*
xfwm
*
xmonad
References
External links
Inter-Client Communication Conventions Manual, Version 2.0Inter-Client Communication Conventions ManualVersion 2.0
{{XWinSys
Computer-related introductions in 1989
Inter-process communication
X Window System