feat(shuma): modo launcher — shuma-shell como el shell de carmen

Fase 3a del plan «shell»: `shuma-shell --launcher` (o la variable
`MIRADA_SHELL`) arranca el shell como una barra compacta acoplada al
pie de carmen, en vez del panel de 3 columnas.

- `run_launcher` abre la ventana GPUI sin barra de título y con
  `app_id = "carmen.shell"` — el acople del compositor la reconoce y le
  reserva su franja. GPUI 0.2 admite `WindowOptions.app_id`.
- `Shell.launcher: bool`; `Render::render` deriva a `render_launcher`
  cuando está activo: una barra de una línea — un glifo, la línea de
  comandos y el estado del último comando (en curso / ✓ / ✗).
- La construcción de la fila del input (tokens coloreados + caret +
  sugerencia fantasma) sale a un helper `input_row` que comparten el
  panel completo y el modo launcher — sin duplicar el resaltado.

`shuma-shell --launcher` va al `autostart.example`. Falta (3b/c/d): la
barra de ventanas abiertas, el cajón de resultados y la config.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-21 05:45:36 +00:00
parent ee27108f6c
commit b17ac8c67a
4 changed files with 179 additions and 50 deletions
+7 -1
View File
@@ -241,8 +241,14 @@ Cerebro: **autónomo** (`Desktop` embebido) o **enlazado** (`MIRADA_SOCKET`
| ------------------ | ---------------------------------------------------------- |
| puntero en `winit` | ratón en el backend anidado (hoy sólo el backend DRM) |
| `mirada-input` | repetición de teclas, gestos; hotplug de monitores |
| `shuma-shell` | modo launcher: barra + input + cajón sobre el acople shell |
| `shuma-shell` | modo launcher: falta la barra de ventanas y el cajón |
| `wlr-layer-shell` | barras externas tipo waybar, fondos, notificaciones |
| `mirada-sandbox` | aislamiento de clientes sobre `arje-incarnate` |
`shuma-shell --launcher` ya corre como el shell de carmen: abre una
ventana sin barra de título con `app_id = "carmen.shell"` (el acople la
reconoce) y dibuja una barra compacta — glifo, la línea de comandos de
`shuma-line` y el estado del último comando. Falta la barra de ventanas
abiertas (vía el socket de control) y el cajón de resultados.
CRIU (congelar/restaurar ventanas) queda anotado como futuro.