Un administrador de ventanas X es un administrador de ventanas que se ejecuta sobre el X Window System , un sistema de ventanas utilizado principalmente en sistemas tipo Unix .
A diferencia de las plataformas MacOS Classic , macOS y Microsoft Windows (excepto los reemplazos de shell explorer.exe de Microsoft Windows ), que históricamente han proporcionado un conjunto fijo y controlado por el proveedor de formas de controlar cómo se muestran las ventanas y los paneles en una pantalla y cómo el usuario puede interactuar con ellos, la administración de ventanas para el sistema X Window se mantuvo deliberadamente separada del software que proporciona la visualización gráfica. El usuario puede elegir entre varios administradores de ventanas de terceros, que se diferencian entre sí en varias formas, entre ellas:
Cuando se ejecuta un gestor de ventanas, algunos tipos de interacción entre el servidor X y sus clientes se redirigen a través del gestor de ventanas. En particular, siempre que se intenta mostrar una nueva ventana, esta solicitud se redirige al gestor de ventanas, que decide la posición inicial de la ventana. Además, la mayoría de los gestores de ventanas modernos están reparentando , lo que suele provocar que se coloque un banner en la parte superior de la ventana y se dibuje un marco decorativo alrededor de la ventana. Estos dos elementos están controlados por el gestor de ventanas en lugar del programa. Por lo tanto, cuando el usuario hace clic o arrastra estos elementos, es el gestor de ventanas el que realiza las acciones adecuadas (como mover o cambiar el tamaño de la ventana).
Los administradores de ventanas también son responsables de los íconos . De hecho, los íconos no existen en el nivel del protocolo principal del sistema X Window . Cuando el usuario solicita que se minimice una ventana, el administrador de ventanas la desasigna (la hace no visible) y toma las acciones apropiadas para mostrar un ícono en su lugar. La mayoría de los administradores de ventanas modernos ya no muestran literalmente íconos para representar ventanas minimizadas. A menudo, un programa de barra de herramientas auxiliar permitirá el acceso a las ventanas minimizadas.
Si bien el objetivo principal de un administrador de ventanas es administrar las ventanas, muchos administradores de ventanas tienen características adicionales como manejar clics del mouse en la ventana raíz , presentar paneles y otros elementos visuales, manejar algunas pulsaciones de teclas (por ejemplo, Alt-F4 puede cerrar una ventana), decidir qué aplicación ejecutar al inicio, etc.
Existen protocolos estandarizados que permiten a los clientes normales comunicarse con el administrador de ventanas. El original es el Manual de convenciones de comunicación entre clientes (ICCCM), pero ha sido reemplazado por las Sugerencias extendidas del administrador de ventanas (EWMH). Estos protocolos permiten a los clientes solicitar títulos para ventanas e íconos, verificar si una ventana está iconificada, si puede estar acoplada o minimizada y, posiblemente, personalizar las decoraciones de las ventanas, qué escritorio virtual ocupa la ventana. [1] Hay información adicional del administrador de ventanas disponible a través del protocolo principal, incluida la visibilidad de las ventanas, como si una ventana está oculta en un escritorio virtual diferente , y determinar los ajustes para los marcos del administrador de ventanas. [ cita requerida ]
Un gestor de ventanas apilables muestra las ventanas una a una en la pantalla en coordenadas específicas. Si el área de una ventana se superpone a otra, la ventana "de encima" sobrescribe parte de la apariencia visible de la otra. Esto da como resultado la apariencia que muchos usuarios conocen: las ventanas actúan un poco como hojas de papel en un escritorio, que se pueden mover y superponer.
A diferencia de los administradores de ventanas de composición (ver más abajo), la falta de buffers separados fuera de la pantalla puede significar una mayor eficiencia, pero efectos como la translucidez no son posibles.
Los administradores de ventanas apilables incluyen Amiwm , Blackbox , CTWM , Enlightenment , Fluxbox , FLWM , FVWM , IceWM , MWM , Openbox , TWM y Window Maker .
Un administrador de ventanas en mosaico es un administrador de ventanas con una organización de la pantalla en marcos que no se superponen entre sí (de ahí el nombre de mosaico ), a diferencia del enfoque tradicional de apilamiento basado en coordenadas de objetos (ventanas) que intenta emular el paradigma del escritorio.
Los administradores de ventanas en mosaico incluyen awesome , dwm , ion , larswm , ratpoison , Stumpwm , wmii , i3 , xmonad y XWEM.
Un gestor de ventanas de composición puede parecerle al usuario similar a un gestor de ventanas apilables. Sin embargo, las ventanas individuales se representan primero en búferes individuales y luego sus imágenes se componen en el búfer de pantalla; este proceso de dos pasos significa que se pueden aplicar efectos visuales (como sombras, translucidez). También significa que los gestores de ventanas de composición consumen inherentemente más recursos que un gestor de ventanas apilables de potencia equivalente. Por este motivo, algunos gestores de ventanas para X no admiten la composición de forma predeterminada, como Openbox . Composición en Lubuntu
Históricamente , Amiga en 1985, OSX en 2001, Java Looking Glass en 2003 y la demostración de Windows Longhorn en 2003 (retrasada hasta Vista en 2007) precedieron a los esfuerzos de composición en X11. Los administradores de ventanas de composición para X incluyen:
Se puede agregar soporte de composición a administradores de ventanas que no sean de composición, mediante el uso de compositores como compton .
Un administrador de ventanas virtuales es un administrador de ventanas que utiliza pantallas virtuales, cuya resolución puede ser mayor que la resolución del monitor/ adaptador de pantalla, por lo que se asemeja a un escritorio virtual bidimensional con su ventana gráfica . Este entorno es muy útil cuando se desea tener una gran cantidad de ventanas abiertas al mismo tiempo. Se han creado varios administradores de ventanas virtuales, incluidos FVWM , Tvtwm , HaZe [2] y otros.
Algunos administradores de ventanas son extensibles o programables mediante scripts de usuario.
En estos administradores de ventanas, los usuarios pueden definir nuevas acciones o anular las predeterminadas, o reacciones a varios eventos, como cambios en el tamaño y la posición de la ventana, creación y eliminación de ventanas, entrada de teclado y mouse, temporizador, etc. A menudo también proporcionan ejecución de código sobre la marcha.
Algunos ejemplos de dichos gestores de ventanas y los lenguajes utilizados son: