Un administrador de ventanas es un software de sistema que controla la ubicación y apariencia de las ventanas dentro de un sistema de ventanas en una interfaz gráfica de usuario . [1] La mayoría de los administradores de ventanas están diseñados para ayudar a proporcionar un entorno de escritorio . Funcionan en conjunto con el sistema gráfico subyacente que proporciona la funcionalidad requerida (soporte para hardware de gráficos, dispositivos señaladores y un teclado) y, a menudo, se escriben y crean utilizando un kit de herramientas de widgets .
Pocos administradores de ventanas están diseñados con una distinción clara entre el sistema de ventanas y el administrador de ventanas. Cada interfaz gráfica de usuario basada en una metáfora de Windows tiene alguna forma de gestión de ventanas. En la práctica, los elementos de esta funcionalidad varían mucho. [2] Los elementos generalmente asociados con los administradores de ventanas permiten al usuario abrir, cerrar, minimizar, maximizar, mover, cambiar el tamaño y realizar un seguimiento de las ventanas en ejecución, incluidos los decoradores de ventanas . Muchos administradores de ventanas también vienen con varias utilidades y características como barras de tareas , iniciadores de programas, bases para facilitar la división a la mitad o en cuartos de ventanas en la pantalla, espacios de trabajo para agrupar ventanas, íconos de escritorio , fondos de pantalla, la capacidad de mantener ventanas seleccionadas en primer plano, la capacidad de "enrollar" ventanas para mostrar solo sus barras de título, ventanas en cascada, apilar ventanas en una cuadrícula, agrupar ventanas del mismo programa en la barra de tareas para ahorrar espacio y barras de tareas de varias filas opcionales. [3] [4] [5] [6]
En 1973, Xerox Alto se convirtió en la primera computadora enviada con una GUI WIMP funcional . Utilizaba un administrador de ventanas apilables que permitía ventanas superpuestas. [7] Sin embargo, esto estaba tan adelantado a su tiempo que su paradigma de diseño no sería ampliamente adoptado hasta más de una década después. Si bien no está claro si Microsoft Windows contiene diseños copiados del clásico Mac OS de Apple , está claro que ninguno de los dos fue el primero en producir una GUI utilizando ventanas apilables. A principios de la década de 1980, Xerox Star , sucesora de Alto, usaba mosaicos para la mayoría de las ventanas de aplicaciones principales y usaba superposición solo para cuadros de diálogo, eliminando la mayor parte de la necesidad de apilar. [8]
El Mac OS clásico fue uno de los primeros ejemplos comercialmente exitosos de una GUI que utilizaba una especie de gestión de ventanas apilables a través de QuickDraw . Su sucesor, macOS , utiliza un administrador de ventanas algo más avanzado que admite la composición desde Mac OS X 10.0 y se actualizó en Mac OS X 10.2 para admitir la composición acelerada por hardware a través de Quartz Compositor . [9]
GEM 1.1 , de Digital Research , era un entorno operativo que incluía un administrador de ventanas apilables, lo que permitía que todas las ventanas se superpusieran. Fue lanzado a principios de los años 1980. [10] GEM es famoso por haber sido incluido como la GUI principal utilizada en Atari ST , que ejecutaba Atari TOS , y también fue una GUI popular para MS-DOS antes del uso generalizado de Microsoft Windows. Como resultado de una demanda de Apple , Digital Research se vio obligada a eliminar las capacidades de apilamiento en GEM 2.0, convirtiendo su administrador de ventanas en un administrador de ventanas en mosaico. [11]
A mediados de la década de 1980, Amiga OS contenía un ejemplo temprano de un administrador de ventanas de composición llamado Intuition (una de las bibliotecas de bajo nivel de AmigaOS, que estaba presente en las ROM del sistema Amiga ), capaz de reconocer qué ventanas o partes de ellas estaban cubiertas. y qué ventanas estaban en primer plano y completamente visibles, por lo que solo podía dibujar partes de la pantalla que requerían actualización. Además, Intuition apoyó la composición. Las aplicaciones podrían primero solicitar una región de memoria fuera de la región de visualización actual para usarla como mapa de bits. El sistema de ventanas Amiga luego usaría una serie de bits blits utilizando el hardware del sistema para construir una combinación de los mapas de bits de estas aplicaciones, junto con botones y controles deslizantes, en la memoria de visualización, sin necesidad de que estas aplicaciones vuelvan a dibujar ninguno de sus mapas de bits.
En 1988, Presentation Manager se convirtió en el shell predeterminado de OS/2 , que, en su primera versión, sólo utilizaba una interfaz de línea de comandos (CLI). IBM y Microsoft diseñaron OS/2 como sucesor de DOS y Windows para DOS. Sin embargo, tras el éxito de Windows 3.10, Microsoft abandonó el proyecto en favor de Windows. Después de eso, el proyecto de Microsoft para un futuro OS/2 versión 3 se convirtió en Windows NT , e IBM hizo un rediseño completo del shell de OS/2, sustituyendo el Presentation Manager de OS/2 1.x por el Workplace Shell orientado a objetos. que hizo su debut en OS/2 2.0. [12]
En los sistemas que utilizan el sistema de ventanas X , existe una clara distinción entre el administrador de ventanas y el sistema de ventanas . Estrictamente hablando, un administrador de ventanas X no interactúa directamente con hardware de vídeo, ratones o teclados; eso es responsabilidad del servidor de visualización .
Los usuarios del sistema X Window tienen la capacidad de utilizar fácilmente muchos administradores de ventanas diferentes: Metacity , usado en GNOME 2 , y KWin , usado en KDE Plasma Workspaces , y muchos otros. Dado que muchos administradores de ventanas son modulares, [ vago ] la gente puede usar otros, [ vago ] como Compiz (un administrador de ventanas de composición 3D ), que reemplaza al administrador de ventanas. [ vago ] Sawfish y Awesome, por otro lado, son administradores de ventanas extensibles que ofrecen un control de ventanas exigente. Los componentes de diferentes administradores de ventanas pueden incluso mezclarse y combinarse; por ejemplo, las decoraciones de ventanas de KWin se pueden utilizar con los componentes de escritorio y base de GNOME.
Los administradores de ventanas X también tienen la capacidad de volver a crear aplicaciones, lo que significa que, si bien inicialmente todas las aplicaciones son adoptadas por la ventana raíz (esencialmente toda la pantalla), una aplicación iniciada dentro de la ventana raíz puede ser adoptada (es decir, colocada dentro de ) otra ventana. Los administradores de ventanas bajo el sistema de ventanas X adoptan aplicaciones de la ventana raíz y las modifican para aplicar decoraciones a las ventanas (por ejemplo, agregando una barra de título). La reparentalización también se puede utilizar para agregar el contenido de una ventana a otra. Por ejemplo, una aplicación de reproductor flash se puede volver a vincular a una ventana del navegador y puede parecerle al usuario que supuestamente forma parte de ese programa. Por lo tanto, los administradores de ventanas reparenting pueden organizar uno o más programas dentro de la misma ventana y pueden combinar fácilmente el mosaico y el apilamiento de varias maneras.
Microsoft Windows ha proporcionado un administrador de ventanas apilables integrado desde Windows 2.0 ; Windows Vista introdujo el Administrador de ventanas de escritorio de composición (dwm.exe) como una alternativa opcional acelerada por hardware. En Windows, dado que GDI es parte del kernel, [13] la función del administrador de ventanas está estrechamente relacionada con los subsistemas gráficos del kernel y en gran medida no es reemplazable, aunque se pueden usar utilidades de terceros para simular un administrador de ventanas en mosaico en superior de tales sistemas. Desde Windows 8 , el Administrador de ventanas de escritorio basado en Direct3D ya no se puede desactivar. [14] Solo se puede reiniciar con la combinación de teclas de acceso rápido Ctrl+Shift+Win+B. [15]
El Explorador de Windows (explorer.exe) se utiliza de forma predeterminada como shell en los sistemas Windows modernos para proporcionar una barra de tareas y un administrador de archivos, junto con muchas funciones de un administrador de ventanas; Algunos aspectos de Windows se pueden modificar a través de las utilidades de configuración proporcionadas, modificando el Registro de Windows o con herramientas de terceros, como WindowBlinds o Resource Hacker .
También se puede proporcionar un servidor X Windows completo, que permite el uso de administradores de ventanas adaptados del mundo unixoid, para Microsoft Windows a través de Cygwin/X incluso en modo de ventanas múltiples (y mediante otras implementaciones del sistema X Window). De este modo, es fácilmente posible, por ejemplo, tener programas cliente del sistema X Window ejecutándose en el mismo entorno Cygwin en la misma máquina, o en un sistema Linux, BSD Unix, etc. a través de la red, y solo su GUI se muestra y se puede utilizar en la parte superior. del entorno Microsoft Windows.
Tenga en cuenta que Microsoft y X Window System utilizan términos diferentes para describir conceptos similares. Por ejemplo, Microsoft rara vez menciona el término administrador de ventanas porque está integrado, no es reemplazable y es distinto del shell . [ se necesita aclaración ] [16] El Shell de Windows es análogo al concepto de entorno de escritorio en otros sistemas de interfaz gráfica de usuario.
Desde 2021, ChromeOS se envía con su propio administrador de ventanas llamado Ash. [17] El cromo y la ceniza comparten un código base común . [17] En el pasado se podía ejecutar google-chrome --open-ash
en cualquier sistema compatible.
Los administradores de ventanas a menudo se dividen en tres o más clases, que describen cómo se dibujan y actualizan las ventanas.
Los administradores de ventanas de composición permiten crear y dibujar todas las ventanas por separado y luego juntarlas y mostrarlas en varios entornos 2D y 3D. Los administradores de ventanas de composición más avanzados permiten una gran variedad en la apariencia de la interfaz y la presencia de efectos visuales avanzados en 2D y 3D.
Todos los administradores de ventanas que tienen ventanas superpuestas y no son administradores de ventanas compuestas son administradores de ventanas apilables , aunque es posible que no todos utilicen los mismos métodos. Los administradores de ventanas apilables permiten que las ventanas se superpongan dibujando primero las ventanas de fondo, lo que se conoce como algoritmo del pintor . A veces, los cambios requieren que se vuelvan a apilar o pintar todas las ventanas, lo que generalmente implica volver a dibujar cada ventana. Sin embargo, para traer una ventana de fondo al frente generalmente solo requiere volver a dibujar una ventana, ya que las ventanas de fondo pueden tener partes de otras ventanas pintadas sobre ellas, borrando efectivamente las áreas que están cubiertas.
Los administradores de ventanas en mosaico pintan todas las ventanas en la pantalla colocándolas una al lado de la otra o encima y debajo de la otra, de modo que ninguna ventana cubra a otra. Microsoft Windows 1.0 usaba mosaicos y hay disponibles una variedad de administradores de ventanas de mosaicos para X , como i3 , awesome y dwm .
Los administradores de ventanas dinámicas pueden cambiar dinámicamente entre el diseño de ventanas flotantes o en mosaico. Hay disponibles una variedad de administradores de ventanas dinámicas para X.
Una ventana activa es la ventana actualmente enfocada en el administrador de ventanas actual. Los diferentes administradores de ventanas indican la ventana actualmente activa de diferentes maneras y permiten al usuario cambiar entre ventanas de diferentes maneras. Por ejemplo, en Microsoft Windows, si tanto el Bloc de notas como Microsoft Paint están abiertos, al hacer clic en la ventana del Bloc de notas se activará esa ventana. En Windows, la ventana activa se indica con una barra de título de diferente color. Sin embargo, hacer clic no es la única forma de seleccionar una ventana activa: algunos administradores de ventanas (como FVWM ) activan la ventana debajo del puntero del mouse; simplemente mover el mouse es suficiente para cambiar de ventana; no es necesario un clic.
Los administradores de ventanas suelen proporcionar una forma de seleccionar la ventana activa utilizando el teclado como alternativa al mouse. Una combinación de teclas típica es Alt+Tab , utilizada por Windows y KDE (de forma predeterminada, aunque es configurable por el usuario); otra es la tecla Apple -tilde, utilizada por Macintosh. Al presionar la combinación de teclas adecuada, generalmente se recorre todas las ventanas visibles en algún orden, aunque son posibles otras acciones.
Muchos administradores de ventanas, aunque no todos, proporcionan una región de la pantalla que contiene algún tipo de control visual (a menudo un botón) para cada ventana de la pantalla. Cada botón normalmente contiene el título de la ventana y también puede contener un icono. Esta área de la pantalla generalmente proporciona algún tipo de indicación visual de qué ventana está activa; por ejemplo, el botón de la ventana activa puede aparecer "presionado". Normalmente también es posible cambiar la ventana activa haciendo clic en el botón correspondiente. En Microsoft Windows, esta área de la pantalla se llama barra de tareas ; En los sistemas Apple Macintosh, esta área de la pantalla se llama base.
Es posible que la ventana activa no siempre se encuentre delante de todas las demás ventanas en la pantalla. La ventana activa es simplemente la ventana a la que se envían las teclas escritas en el teclado; otras ventanas pueden ocultarlo visualmente. Esto es especialmente cierto en los administradores de ventanas que no requieren un clic para cambiar las ventanas activas: FVWM , por ejemplo, activa la ventana debajo del cursor del mouse pero no cambia su orden Z (el orden en que aparecen las ventanas, medidas desde el fondo). al primer plano). En cambio, es necesario hacer clic en el borde de la ventana para ponerla en primer plano. También hay situaciones en los administradores de ventanas de hacer clic para enfocar, como Microsoft Windows, en las que la ventana activa puede quedar oscurecida; sin embargo, esto es mucho menos común.