docs(mirada): el backend DRM funciona — README y SDD al día

mirada-compositor tiene dos backends: winit (anidado) y drm (nativo
sobre TTY, verificado en hardware). README con la selección de backend,
los requisitos de cada uno y MIRADA_STARTUP/MIRADA_DRM_TIMEOUT; SDD con
la estructura del backend DRM. Pendiente: puntero en DRM, VT switch,
hotplug.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-21 03:08:46 +00:00
parent 84f94574f1
commit c07356d8bc
2 changed files with 54 additions and 36 deletions
+20 -16
View File
@@ -183,23 +183,27 @@ apps `mirada` y `mirada-compositor` (compilan; verificación visual
manual) y `mirada-ctl` (CLI, probado vía el ejemplo `headless-ctl`).
El **Cuerpo** ya existe: `mirada-compositor` es un compositor Wayland
teselante real sobre `smithay`, con backend `winit` — corre **anidado**
como una ventana dentro de la sesión gráfica actual. Habla
`wl_compositor`/`xdg_shell`/`wl_shm`/`wl_seat`/`wl_data_device`, compone
las superficies de los clientes con `GlesRenderer` y aplica la geometría
del Cerebro. Reusa `mirada-body` (contabilidad) y `mirada-link` (cable).
Dos modos: **autónomo** (Cerebro `Desktop` embebido, un solo proceso) o
**enlazado** (`MIRADA_SOCKET` → la app `mirada` decide la geometría).
Compila y pasa clippy; verificación visual manual — ver
`crates/apps/mirada-compositor/README.md`.
teselante real sobre `smithay`. Habla `wl_compositor`/`xdg_shell`/
`wl_shm`/`wl_seat`/`wl_output`/`wl_data_device`, compone las superficies
de los clientes con `GlesRenderer` y aplica la geometría del Cerebro.
Reusa `mirada-body` (contabilidad) y `mirada-link` (cable). Dos modos de
Cerebro: **autónomo** (`Desktop` embebido) o **enlazado** (`MIRADA_SOCKET`
→ la app `mirada`).
**Pendiente** — refinamientos del Cuerpo, no verificables en modo
desatendido:
**Dos backends gráficos** (`main()` elige; `--winit`/`--drm` lo fuerzan):
| capa pendiente | rol |
| -------------------- | -------------------------------------------------------- |
| backend DRM/libinput | de `winit` anidado a sesión nativa: superficies KMS, GPU |
| `mirada-input` | puntero/ratón completo, repetición de teclas, gestos |
| `mirada-sandbox` | aislamiento de clientes sobre `arje-incarnate` |
- **`winit`** — corre anidado, una ventana en la sesión gráfica actual.
- **`drm`** (`drm_backend.rs`) — corre nativo sobre una TTY, sin sesión
anfitriona: `libseat` (sesión), `udev` (GPU), `DrmDevice` + GBM + EGL +
`DrmCompositor`, `libinput` (teclado), bucle `calloop`. Verificado en
hardware: sesión, render, teclado, atajos, clientes, salida limpia.
**Pendiente** — refinamientos del Cuerpo:
| capa pendiente | rol |
| ---------------- | ------------------------------------------------------------ |
| puntero en `drm` | ratón/touchpad por `libinput` (hoy el backend DRM sólo teclado) |
| `mirada-input` | repetición de teclas, gestos; conmutación de VT, hotplug |
| `mirada-sandbox` | aislamiento de clientes sobre `arje-incarnate` |
CRIU (congelar/restaurar ventanas) queda anotado como futuro.