feat(renaser): Fase 8d — manipulación de ventanas

El escritorio se podía recorrer con el foco, pero no reordenar. La 8d lo
hace manipulable: el orden de teselado se separa de la identidad.

- Escritorio gana `orden: Vec<usize>` — una permutacion que dice que
  ventana ocupa cada celda. Mover una ventana cambia su celda, no su
  indice_app: conserva su canal de teclado y su ranura de estado.
- aplicar_teselado reparte los marcos segun el orden.
- Alt+Enter promueve la ventana enfocada a la celda maestra; Alt+H/Alt+L
  la reordenan. mover_foco recorre ahora el orden, no los indices crudos.

Verificado en QEMU (sendkey): con memoriosa enfocada, Alt+Enter la
promueve a maestra y hola baja a la pila; Alt+L la devuelve a la pila. El
foco —el borde indigo— viaja siempre con la ventana, no con la celda.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-22 19:25:32 +00:00
parent 3454b8ba1e
commit dacfbad124
7 changed files with 188 additions and 37 deletions
+29
View File
@@ -731,3 +731,32 @@ asume la persistencia visual con una caché de fotogramas.
mueve con él.
- **Enrutamiento** — con `memoriosa` enfocada, cuatro pulsaciones llegan sólo
a ella —cuatro celdas violetas—; las demás apps, intactas.
## Fase 8d — Manipulación de ventanas — 2026-05-22
El escritorio de la 8c se podía recorrer con la vista —el foco— pero no
reordenar. La 8d lo hace MANIPULABLE: el orden de teselado se separa de la
identidad de las ventanas, y el teclado promueve y reordena.
### Añadido
- `Escritorio` gana `orden: Vec<usize>` — una permutación que dice qué ventana
ocupa cada celda del teselado. Separar el orden de la identidad
(`indice_app`) permite mover una ventana sin tocar su canal de teclado ni su
ranura de estado: cambia de pared, no de identidad.
- `aplicar_teselado` — recalcula los marcos y los reparte según el orden.
- Mandos `Promover`, `MoverAdelante`, `MoverAtras`:
- `Alt+Enter` — promueve la ventana enfocada a la celda maestra; las demás
se desplazan una posición.
- `Alt+L` / `Alt+H` — mueven la ventana enfocada adelante / atrás en el
orden, intercambiándola con su vecina.
### Cambiado
- `mover_foco` recorre ahora el ORDEN de teselado —no los índices crudos—: el
foco salta entre ventanas visualmente contiguas.
- `ciclar_layout` y `fundar` delegan en `aplicar_teselado`.
### Verificado
- QEMU (`sendkey`): con `memoriosa` enfocada, `Alt+Enter` la promueve a la
ventana maestra y `hola` baja a la pila; `Alt+L` la devuelve a la pila y
`hola` recupera la maestra. El foco —el borde índigo— viaja siempre con la
ventana, no con la celda.