feat(renaser): Fase 14 — identidad del escritorio (nombres + barra de tareas)

Las ventanas eran anónimas: el escritorio no sabía nombrar lo que
mostraba. Esta fase le pone un nombre a cada cuarto y una barra al
pie con la lista de quienes lo habitan.

- Cada `Ventana` lleva un `nombre: String` —del manifiesto, o del
  orquestador al engendrarla en vivo—. `Plantilla` lo guarda para las
  copias que `Alt+N` instancia.
- Franja `FRANJA_TASKBAR=40px` reservada al pie. `area_apps` la
  descuenta — las ventanas teselan y flotan sin tapar la barra.
- `consola`: tipos `Taskbar` / `CeldaTaskbar` + métodos `pintar_taskbar`
  y `pintar_etiqueta` (rasteriza una cadena en (x, base_y) sobre un
  fondo conocido, sin tocar la pluma). La pestaña enfocada se pinta con
  el índigo del foco, las desalojadas con su color de baliza, el resto
  con el slate del panel.
- `compositor::recomponer` arma las celdas y las pasa junto a las capas
  a la consola; un único repintado, una única presentación.
- `atender_raton`: si el clic cae en la franja de la barra,
  `celda_taskbar_en` localiza la pestaña pulsada y la enfoca (sin
  iniciar arrastre).

Verificado en QEMU: al arrancar, la barra al pie muestra las 7
pestañas con sus nombres; `tonada` enfocada en índigo, `discola` y
`glotona` en sus colores de baliza. Un clic sobre `pulso` traslada el
foco al instante — el borde del compositor envuelve `pulso` y su
pestaña se ilumina.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-23 02:05:51 +00:00
parent be4de986be
commit 6a29152feb
7 changed files with 328 additions and 19 deletions
+27
View File
@@ -228,6 +228,33 @@ clic-para-enfocar y arrastre del marco de las flotantes. Verificada en QEMU
cualquier ventana viva); si la enfocada flota, arranca un ARRASTRE con el
desfase de agarre; el botón sostenido la sigue al puntero; al soltar, fin.
## Fase 14 — la identidad del escritorio: nombres y barra de tareas (completada)
Las ventanas eran anónimas; el escritorio no sabía nombrar lo que mostraba. La
Fase 14 le pone un nombre a cada cuarto y una barra al pie con la lista de
quienes lo habitan. Verificada en QEMU.
- Cada `Ventana` lleva un `nombre: String` —el del manifiesto, o el del
orquestador al engendrarla en vivo—. `Plantilla` lo guarda para las copias.
- Una franja de 40 px al pie reservada como `area_taskbar`. `area_apps` la
descuenta — las ventanas teselan y flotan sin tapar la barra ni la consola.
- `consola` gana los tipos `Taskbar` / `CeldaTaskbar` y los métodos
`pintar_taskbar` y `pintar_etiqueta`. La pestaña enfocada lleva el índigo del
foco; la desalojada, su color de baliza; el resto, el slate.
- Un clic dentro de la barra enfoca la ventana de la pestaña pulsada, sin
iniciar arrastre. El compositor encuentra la celda con `celda_taskbar_en`.
## Mejora estructural — mapeador MMIO en el kernel (entre fases 13 y 14)
Los BAR prefetchables 64-bit que OVMF aloja en la ventana PCI de 64 bits NO
los mapea `bootloader_api`. El kernel gana `memory::mmio`, que envuelve la
tabla L4 activa y abre páginas hacia las regiones MMIO que virtio-drivers le
pide. `KernelHal::mmio_phys_to_virt` llama al mapeador antes de devolver el
puntero. Trata `PageAlreadyMapped` y `ParentEntryHugePage` como éxito
silencioso. Los marcos para tablas intermedias salen del banco DMA. Esta
mejora resolvió el #PF inexplicable en máquinas con un OVMF que coloca el BAR
del virtio-blk fuera de los primeros 4 GiB.
Líneas abiertas posteriores: reciclado de las ranuras de ventana cerradas;
audio con varias voces (PCM) más allá del tono único de la bocina.