feat(renaser): Fase 16 — la barra viva: botón lanzador + reloj

La barra de tareas era pasiva: nombraba pero no hacía. Ahora lleva
en sus extremos los dos adornos de toda barra digna.

- Botón «+» indigo a la izquierda (36 px). Un clic incrementa
  `PARTOS` — el mismo contador que `Alt+N` — y la tarea del
  compositor lo recoge para lanzar la siguiente app de la rotación.
  Teclado y ratón comparten ya la misma vía para crear ventanas.
- Reloj `mm:ss` a la derecha (80 px), leído de
  `reloj::milisegundos()`. Tinta blanca sobre slate.
- `compositor::tick_reloj()` lo invoca la tarea del compositor cada
  fotograma; recompone solo cuando el segundo del reloj monótono
  cambia respecto al último mostrado (`ULTIMO_SEGUNDO: AtomicU64`).
  Cero coste mientras no toca refrescar.
- `Taskbar` crece con `launcher`, `reloj` y `reloj_region`; el
  layout de las pestañas se ajusta entre ambas cuñas. La cruz del
  lanzador se dibuja en píxeles directos —dos rectángulos cruzados,
  independiente de la tipografía—.

Verificado en QEMU con dos capturas separadas: la barra muestra el
«+» indigo, las siete pestañas (con `glotona` ya legible) y el
reloj. En la primera marca `0:17`; diez segundos después, `0:29` —
la barra se refrescó doce veces sin intervención.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-23 03:36:46 +00:00
parent 0422780dd9
commit 71ebcea899
7 changed files with 208 additions and 27 deletions
+16
View File
@@ -273,6 +273,22 @@ desalojarla. Verificada en QEMU con captura PCM a WAV.
- Pestañas de la barra de tareas: tinta calculada por brillo del fondo, así la
pestaña crema del desalojo por memoria ya no lleva texto invisible.
## Fase 16 — la barra viva: lanzador y reloj (completada)
La barra de tareas era pasiva. Esta fase la activa con un botón lanzador a la
izquierda («+», equivalente táctil de `Alt+N`) y un reloj `mm:ss` a la derecha
que late cada segundo. Verificada en QEMU con dos capturas separadas en el
tiempo: el reloj avanza de `0:17` a `0:29`.
- `compositor`: layout reorganizado — lanzador a la izquierda (36 px), celdas
en el medio, reloj a la derecha (80 px). `clic_en_launcher` enruta el clic
al contador `PARTOS`; la tarea del compositor lo recoge y lanza.
- `compositor::tick_reloj()` — invocada cada fotograma; recompone sólo cuando
el segundo del reloj monótono cambia respecto al último mostrado.
- `consola::Taskbar` crece con `launcher`, `reloj` y `reloj_region`.
`pintar_taskbar` dibuja la cruz del lanzador como dos rectángulos
cruzados (sin depender de la tipografía) y rotula el reloj.
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.