En informática , el Manual de Convenciones de Comunicación entre Clientes ( ICCCM o I39L, abreviatura de "I", 39 letras y "L") [1] es un protocolo estándar para el Sistema X Window . Especifica las convenciones para los clientes de un servidor X común sobre selecciones y buffers de corte , comunicación con el administrador de ventanas y el administrador de sesiones , manipulación de recursos compartidos y caracterización de color.
Fue diseñado por David SH Rosenthal del MIT X Consortium de 1987 a 1989. Una versión borrador apareció en marzo de 1988 en X11R2. Esta fue eliminada de X11R3. La versión 1.0 fue lanzada en julio de 1989 como parte de X11R4. Tres administradores de ventanas en el directorio contrib de X11R4 implementaron soporte para ICCCM: gwm, olwm y tekwm. La versión 1.1 contiene una actualización para la caracterización de color y apareció en X11R5. La versión 2.0 tiene muchos cambios en las áreas de administración de ventanas, selecciones , administración de sesiones y uso compartido de recursos. Fue lanzada en mayo de 1994 como parte de X11R6.
X especifica deliberadamente "un mecanismo, no una política" para la interacción entre ventanas. Por ello, se necesitaba una especificación adicional más allá del propio protocolo X para la interoperabilidad con el cliente.
El ICCCM especifica los buffers de cortar y pegar, la interacción con el administrador de ventanas, la administración de sesiones, cómo manipular recursos compartidos y cómo administrar los colores de los dispositivos. Estas funciones de bajo nivel generalmente se implementan dentro de los conjuntos de herramientas de widgets o entornos de escritorio . Esto aísla a los programadores de aplicaciones de trabajar directamente con el propio ICCCM, ya que esta funcionalidad se delega al conjunto de herramientas de implementación.
El ICCCM ha recibido algunas críticas por ser ambiguo y difícil de implementar correctamente. [1] [2] Esto fue reconocido en el prefacio de la versión 2.0, afirmando que tenía como objetivo "corregir problemas con borradores anteriores y mejorar la legibilidad y la comprensibilidad".
Además, algunas partes pueden estar obsoletas o no ser prácticas para implementar. [3] El estándar Extended Window Manager Hints (EWMH) es un estándar más reciente que, según su introducción: "se basa en el ICCCM, que define las interacciones del administrador de ventanas en un nivel inferior. El ICCCM no proporciona formas de implementar muchas de las características que los usuarios de escritorio modernos esperan". Pero también establece: "Los clientes que buscan cumplir con esta especificación DEBEN adherirse al ICCCM sobre el cual se basa esta especificación". en la medida en que el EWMH no lo invalide.
Freedesktop.org señala que "históricamente, los clientes X no han manejado el cortar y pegar de manera consistente" y formula pautas adicionales en una especificación de portapapeles.