Inter-Client Communication Conventions Manual
{{Short description|Standard protocol for the X Window System}}
{{Redirect|Ice Cubed|the form of water ice|Ice cube|the high speed train|ICE 3|other uses|Ice cube (disambiguation)}}
In computing, the Inter-Client Communication Conventions Manual (ICCCM or I39L short for "I", 39 letters and "L")[http://www.art.net/~hopkins/Don/unix-haters/x-windows/disaster.html The X-Windows Disaster] Don Hopkins, UNIX-HATERS Handbook is a standard protocol for the X Window System. It specifies conventions for clients of a common X server about selections and cut buffers, communication with the window manager 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 in [https://www.x.org/wiki/X11R2/ X11R2].
This was removed from [https://www.x.org/releases/X11R3/CHANGES.ALL X11R3].
Version 1.0 was released in July 1989 as part of [https://www.x.org/releases/X11R4/RELNOTES.txt X11R4].
Three window managers in the X11R4 contrib directory implemented support for ICCCM:
[https://tronche.com/gui/x/gwm/html-manual/ gwm], olwm and [https://www.x.org/wiki/X11R4/#index27h4 tekwm].
Version 1.1 contains an update for color characterization and
appeared in [https://www.x.org/releases/X11R5/RELNOTES.TXT X11R5].
Version 2.0 has many changes in the areas of window management,
selections, session management, and resource sharing.
It was released in May 1994 as part of [https://www.x.org/wiki/X11R6/ 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 has received some criticism for being ambiguous and difficult to implement correctly.
[https://raw.githubusercontent.com/kfish/xsel/1a1c5edf0dc129055f7764c666da2dd468df6016/rant.txt - [chat] Re: [SLUG] Ximian / Gnome and Xalf]
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.
[http://lists.debian.org/debian-policy/1999/12/msg00053.html Re: ICCCM compliance?]
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 notes that
"historically, X clients have not handled cut-and-paste in a consistent way"
and formulates additional guidelines in a
[https://specifications.freedesktop.org/clipboards-spec/clipboards-latest.txt clipboards-spec] {{Webarchive|url=https://web.archive.org/web/20210217014751/https://specifications.freedesktop.org/clipboards-spec/clipboards-latest.txt |date=2021-02-17 }}.
List of Window Managers that are ICCCM Compliant
{{list|date=December 2016}}
- aewm — a stacking window manager.
- alloywm — partial compliance.
- awesome — a dynamic window manager that is configured in Lua.
- Blackbox{{cite web|url=https://github.com/bbidulock/blackboxwm/blob/master/COMPLIANCE|title=Blackbox COMPLIANCE|website=GitHub |access-date=2021-02-15 }}
- Compiz
- CTWM
- 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{{cite web|url=https://github.com/ice-wm/icewm/blob/master/COMPLIANCE|title=IceWM COMPLIANCE|website=GitHub |access-date=2020-12-28 }}
- 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
References
{{Reflist}}
External links
- [https://tronche.com/gui/x/icccm/ Inter-Client Communication Conventions Manual, Version 2.0]
- [http://www.x.org/docs/ICCCM/icccm.pdf Inter-Client Communication Conventions Manual] Version 2.0
{{XWinSys}}
Category:Computer-related introductions in 1989