I3 (gestor de ventanas)
# I3 (gestor de ventanas)

i3 es un gestor de ventanas en mosaico diseñado para X11, inspirado en wmii, y escrito en C. Soporta la superposición y agrupación de ventanas, que maneja dinámicamente. La configuración se maneja a través de un archivo de texto plano, e i3 se puede extender usando su Socket Unix e interfaz IPC basada en JSON con muchos lenguajes de programación.

Como wmii, i3 utiliza un sistema de control muy similar a vi. Por defecto, la selección de ventana activa es controlada por el 'Mod1' (Tecla Alt/Tecla Super) y las teclas de la fila central de la mano derecha (Mod1+J,K,L,;), mientras el movimiento de las ventanas es manejado añadiendo la tecla Tecla Shift (Mod1+Shift+J,K,L).

## Objetivos

* Posee un código bien escrito y documentado que anima al usuario a contribuir.
* Usa XCB en vez de Xlib.
* Implementa correctamente las herramientas multi-monitor, de forma que cada espacio es asignado a una ventana virtual, y la adición y eliminación de monitores no elimina las ventanas.
* Implementa diferentes modos, similar a vi o emacs, el editor de texto, ya que las teclas tienen diferentes funciones dependiendo del modo en el que se encuentre el gestor de ventanas.
* Usa estructura de árbol de datos para la administración de las ventanas.
* Implementa UTF-8.

## Comparado con otros gestores de ventanas

* La configuración se realiza a través de un archivo de texto plano, por lo que i3 se puede personalizar con cierto conocimiento de programación.
* A diferencia de otros gestores de ventanas populares como: dwm, awesome y xmonad, i3 deja la administración de las ventanas por parte del usuario. Las ventanas se almacenan en contenedores y pueden ser divididas de forma vertical u horizontal; también se pueden agrupar, cambiar de tamaño y navegar entre ellas a través de tabulación (similar a la interfaz de los navegadores actuales).

## Ventanas emergentes

Aunque i3 es un gestor de ventanas estático, ventanas específicas, como ventanas emergentes de contraseñas, no se representan como ventanas propias por defecto: se agrupan encima de otras ventanas. Estas ventanas "flotantes" se pueden mover y cambiar de tamaño libremente, como cualquier entorno de escritorio popular, como GNOME o KDE.

El objetivo de las ventanas flotantes es su uso exclusivo en ventanas emergentes.

