feat(mirada): mirada-layout — motor de teselado del compositor Wayland
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>
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
# 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.
|
||||
Reference in New Issue
Block a user