feat(renaser): Fases 8b y 8c — el escritorio interactivo
El compositor de la 8a teselaba, pero era inmovil. Las 8b/8c lo hacen vivo: el teclado reordena el escritorio y mueve el foco en caliente. - Cache de fotogramas: cada ventana guarda en RAM del kernel su ultimo fotograma —reservada una vez, acotada al lienzo natural—. Al re-teselar o mover el foco, el kernel recompone desde la cache: las apps que solo pintan en init (cronista) conservan su imagen sin enterarse del cambio. - compositor: el registro ESCRITORIO (ventanas, marcos, caches, modo); presentar_fotograma, desalojar, atender_mandos, ciclar_layout, mover_foco. Foco en un AtomicUsize, mandos en una cola lock-free. - teclado: la IRQ1 deja de difundir. Alt es el modificador del sistema — Alt+Espacio cicla el teselado, Alt+J/K mueven el foco—; una tecla ordinaria va SOLO a la app enfocada (CANALES reindexado por indice_app). - consola: borde de foco (indigo / gris) en cada marco. Guardarrail anti-interbloqueo: la IRQ1 jamas bloquea ESCRITORIO; se comunica por dos atomicos y una cola lock-free. Las caches se reservan una sola vez, al tamaño natural — sin asignacion en el bucle del reactor. Verificado en QEMU (screendump + sendkey): arranque teselado con hola enfocada; Alt+Espacio cicla a CenteredMaster y las apps estaticas conservan su contenido; Alt+J mueve el foco; las teclas llegan solo a la app enfocada. Cierra la Fase 8 — el compositor teselante e interactivo. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
+20
-12
@@ -29,21 +29,29 @@ bare-metal.
|
||||
- `EntradaApp.region_ancho/alto` pasa a significar el tamaño NATURAL del lienzo
|
||||
de la app; `region_x/y` quedan vestigiales — el compositor decide la posición.
|
||||
|
||||
### 8b — Teselado interactivo
|
||||
### 8b — Teselado interactivo — ✅ HECHA
|
||||
|
||||
- El teclado cicla en caliente los siete modos de `mirada-layout`
|
||||
(`MasterStack`, `CenteredMaster`, `Spiral`, `Grid`, `Columns`, `Rows`,
|
||||
`Monocle`).
|
||||
- Re-teselar exige re-componer: las apps que sólo pintan en `init` necesitan
|
||||
una señal de redibujado, o el kernel debe conservar su último fotograma para
|
||||
recomponerlo en el marco nuevo.
|
||||
- `Alt+Espacio` cicla en caliente los siete modos de teselado de
|
||||
`mirada-layout` (`MasterStack`, `CenteredMaster`, `Spiral`, …).
|
||||
- Re-teselar exige re-componer. La solución: el kernel guarda una CACHÉ del
|
||||
último fotograma de cada app —acotada al lienzo natural, reservada una sola
|
||||
vez— y recompone desde ella. Una app que sólo pintó en su `init` conserva su
|
||||
imagen a través de cualquier reordenación, sin enterarse del cambio.
|
||||
|
||||
### 8c — Foco y `Workspace`
|
||||
### 8c — Foco y enrutamiento selectivo — ✅ HECHA
|
||||
|
||||
- Adoptar el `Workspace` de `mirada-layout`: foco, orden-Z, alta y baja de
|
||||
ventanas en vivo.
|
||||
- Una ventana enfocada, resaltada; el teclado mueve el foco y promueve apps al
|
||||
área maestra.
|
||||
- Una ventana ENFOCADA, con borde índigo brillante; las demás, borde gris
|
||||
mate. `Alt+J` / `Alt+K` pasean el foco entre las ventanas vivas.
|
||||
- El teclado deja de difundir a ciegas: una tecla ordinaria se entrega sólo a
|
||||
la app enfocada; los mandos `Alt+…` se consumen en la IRQ.
|
||||
- El registro `ESCRITORIO` del compositor cumple el papel del `Workspace` de
|
||||
`mirada-layout` —ventanas, marcos, foco— sin adoptar su tipo: el kernel
|
||||
necesita además la caché de respaldo, que el `Workspace` no contempla.
|
||||
|
||||
### Pendiente
|
||||
|
||||
- Orden-Z y solapamiento (ventanas flotantes); alta y baja de apps en vivo.
|
||||
- Promover la app enfocada al área maestra (`Alt+Enter`).
|
||||
|
||||
## Estructura de archivos
|
||||
|
||||
|
||||
Reference in New Issue
Block a user