1# modules/mirada/ — Compositor Wayland
2
3**Propósito.** Un compositor Wayland teselante con aislamiento de
4clientes (sobre `arje-incarnate`) y delegación de regiones. El cerebro
5espacial —cómo se reparte la pantalla— se mantiene puro y aislado de
6Wayland para poder probarlo sin un servidor gráfico.
7
8## Crates
9
10| crate | tipo | rol |
11| --------------- | ---- | ------------------------------------------------------------ |
12| `mirada-layout` | lib | Motor de teselado: `Rect`, modos de layout, `Workspace` (ventanas, foco) |
13
14## mirada-layout
15
16- `Rect` + `split` — reparto exacto de píxeles (sin pérdidas).
17- `LayoutMode` — `MasterStack`, `Monocle`, `Grid`, `Columns`; `tile`
18 calcula el rectángulo de cada ventana.
19- `Workspace` — ventanas en orden de teselado, foco cíclico, reordenado
20 (`move_focused_forward/backward`) y `layout` que resuelve la geometría.
21- Determinista: misma pantalla + mismas ventanas → misma distribución.
22
23## Dependencias
24
25- `mirada-layout` ← sólo `serde`. `#![forbid(unsafe_code)]`.
26- Cero Wayland, cero `smithay` — ese acoplamiento vive en los crates de
27 integración pendientes.
28
29## Estado
30
31`mirada-layout` implementado y verde (22 tests). **Pendiente** (la capa
32que toca hardware/protocolo, no verificable en modo desatendido):
33
34| crate pendiente | rol |
35| ------------------ | ---------------------------------------------------- |
36| `mirada-compositor`| integración `smithay`: superficies, buffers, salidas |
37| `mirada-input` | teclado/ratón, atajos, asignación de foco |
38| `mirada-sandbox` | aislamiento de clientes sobre `arje-incarnate` |
39
40CRIU (congelar/restaurar ventanas) queda anotado como futuro.
SDD.md
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.