En el proceso de aprender a hacer ciertas cosas en la programación de la GUI (p. Ej., Reservar espacio en la pantalla para una aplicación), tengo que aprender más sobre el Administrador de ventanas, generalmente X11 en Linux (no estoy seguro de si incluso hay distribuciones , que usan algo más que X11, aunque escuché sobre Wayland , que aún no está implementado en ninguno).
Soy bastante nuevo en programación e impaciente; así que solo me estoy sumergiendo en eso. Ahora estoy leyendo el ICCCM, con la esperanza de aprender más. Sin embargo, este documento apunta a un público que sabe (mucho) más que yo. Entonces encontré información y me encantaría obtener algunas aclaraciones.
La sección 2 de las citas de ICCCM:
Tenga en cuenta que todos los datos transferidos entre un propietario y un solicitante generalmente deben pasar por medio del servidor en un entorno X Versión 11. Un cliente no puede asumir que otro cliente puede abrir los mismos archivos o incluso comunicarse directamente. El otro cliente puede estar hablando con el servidor mediante un mecanismo de red completamente diferente (por ejemplo, un cliente puede ser DECnet y el otro TCP / IP). Por lo tanto, pasar referencias indirectas a datos (como nombres de archivos, nombres de host y números de puerto, etc.) está permitido solo si ambos clientes están de acuerdo específicamente.
Por lo que yo entiendo, X Window Manager está construido en la parte superior del servidor X (gracias Wikipedia). En la cita anterior: dice que el cliente puede comunicarse con el servidor utilizando DECnet o TCP / IP. Hasta ahora pensé que "servidor" era una forma de hablar, ahora estoy dudando: ¿X server es un servidor como en un "servidor web"? ¿Cómo debo entender su función / definición?
Luego, a menudo hay referencias a X11, Xorg, X Server y / o X Window Manager. Se vuelve confuso: ¿X11 es un paquete que incluye Xorg y X Window Manager? Si es así, ¿hay algo más en este paquete X11?
X también necesita mouse o teclado o cualquier otro tipo de entrada: ¿ es también parte de las funciones de X Server? ¿X Window Manager solo se ocupa estrictamente de la pantalla?
Finalmente, la cita anterior también menciona que el cliente se comunica o no entre sí: esto me recordó a D-Bus, que he usado un poco para aprender. Con D-Bus también puede activar eventos de ventana. Eso me confunde un poco sobre cómo los programas deben comunicarse entre sí: * ¿qué diferencia hay entre los programas que interactúan usando X Server o D-Bus? * *
Es una pena que esta información siga siendo de alguna manera oscura, hace que sea más difícil de aprender, pero espero que puedas sacar algo de luz sobre esto :) Gracias.