feat(mirada): scratchpad — ventana desplegable estilo terminal quake

Una ventana se puede guardar en el scratchpad (oculta, en ningún
escritorio) e invocar a voluntad como overlay flotante — el patrón de
la terminal desplegable.

- Desktop.scratchpad: Vec<WindowId>. SendToScratchpad saca la ventana
  enfocada del teselado y la guarda; ToggleScratchpad (Super+`) la
  invoca flotando y centrada en el escritorio activo, o la oculta.
- Invocarla desde otro escritorio la trae consigo (sale de donde
  estuviera). WindowClosed la quita del scratchpad.
- window_lines marca las guardadas como workspace 0; mirada-ctl windows
  las lista como «esc scratch».

Sin cambios de protocolo — una ventana del scratchpad invocada no es
más que una flotante. Verificado end-to-end con headless-ctl.
mirada-brain 58->63 tests.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-21 01:23:17 +00:00
parent 799dcef22e
commit 13d2ae71fb
8 changed files with 159 additions and 7 deletions
+6 -1
View File
@@ -128,6 +128,11 @@ que un front-end (`Keybind` → `lookup` → `apply`); hay otros tres:
el escritorio pedido ya lo muestra otra salida); `FocusOutputNext`
(`Super+o`) mueve el foco entre monitores. El foco del teclado es
único — sólo la ventana enfocada de la salida enfocada.
- **Scratchpad** — `SendToScratchpad` guarda la ventana enfocada (sale
del teselado, en ningún escritorio); `ToggleScratchpad` (`` Super+` ``)
la invoca flotando y centrada en el escritorio actual, o la oculta —
estilo terminal desplegable. `Desktop.scratchpad: Vec<WindowId>`;
`mirada-ctl windows` la lista como `esc scratch`.
- **Layout y área maestra por el API** — los 7 modos se intercambian
(`SetLayout`/`CycleLayout`, `mirada-ctl layout spiral`); el área
maestra se redimensiona (`grow`/`shrink-master`, `Super+l`/`Super+h`);
@@ -170,7 +175,7 @@ a las ya abiertas.
## Estado
Implementado y verde: `mirada-layout` (32 tests), `mirada-protocol`
(11), `mirada-brain` (58), `mirada-link` (7), `mirada-body` (14), las
(11), `mirada-brain` (63), `mirada-link` (7), `mirada-body` (14), las
apps `mirada` y `mirada-compositor` (compilan; verificación visual
manual) y `mirada-ctl` (CLI, probado vía el ejemplo `headless-ctl`).