b975dc7919
Rect + split (reparto exacto de píxeles), 4 modos de layout (MasterStack, Monocle, Grid, Columns) con tile(), y Workspace: ventanas en orden de teselado, foco cíclico, reordenado y resolución de geometría. Determinista, agnóstico de Wayland/smithay. 22 tests. #![forbid(unsafe_code)]. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
41 lines
1.8 KiB
Markdown
41 lines
1.8 KiB
Markdown
# 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.
|