# modules/mirada/ — Compositor Wayland **Propósito.** Un compositor Wayland teselante con aislamiento de clientes (sobre `arje-incarnate`) y delegación de regiones. El cerebro espacial —cómo se reparte la pantalla— se mantiene puro y aislado de Wayland para poder probarlo sin un servidor gráfico. ## Crates | crate | tipo | rol | | --------------- | ---- | ------------------------------------------------------------ | | `mirada-layout` | lib | Motor de teselado: `Rect`, modos de layout, `Workspace` (ventanas, foco) | ## mirada-layout - `Rect` + `split` — reparto exacto de píxeles (sin pérdidas). - `LayoutMode` — `MasterStack`, `Monocle`, `Grid`, `Columns`; `tile` calcula el rectángulo de cada ventana. - `Workspace` — ventanas en orden de teselado, foco cíclico, reordenado (`move_focused_forward/backward`) y `layout` que resuelve la geometría. - Determinista: misma pantalla + mismas ventanas → misma distribución. ## Dependencias - `mirada-layout` ← sólo `serde`. `#![forbid(unsafe_code)]`. - Cero Wayland, cero `smithay` — ese acoplamiento vive en los crates de integración pendientes. ## Estado `mirada-layout` implementado y verde (22 tests). **Pendiente** (la capa que toca hardware/protocolo, no verificable en modo desatendido): | crate pendiente | rol | | ------------------ | ---------------------------------------------------- | | `mirada-compositor`| integración `smithay`: superficies, buffers, salidas | | `mirada-input` | teclado/ratón, atajos, asignación de foco | | `mirada-sandbox` | aislamiento de clientes sobre `arje-incarnate` | CRIU (congelar/restaurar ventanas) queda anotado como futuro.