feat(mirada): 3 layouts nuevos + redimensionar el área maestra
mirada-layout pasa de 4 a 7 modos de teselado, todos intercambiables por el API (SetLayout / CycleLayout / mirada-ctl layout <modo>): - Rows: filas horizontales de igual alto (complemento de Columns). - Spiral: espiral de Fibonacci — cada ventana parte por la mitad el espacio restante, alternando el sentido del corte. - CenteredMaster: maestra centrada + pila a ambos lados (monitores anchos). LayoutMode::ALL + next() definen el ciclo. Añade dos acciones, GrowMaster/ShrinkMaster (Super+l / Super+h), que ajustan master_ratio en caliente — ese parámetro existía pero no había forma de tocarlo. Cableado completo: tile(), cycle, slugs Display/FromStr, keymap por defecto (Super+r/d/s), HUD de mirada, mirada-ctl actions. El ejemplo headless-ctl ahora imprime la geometría para verificar los layouts. mirada-layout 22->26 tests, mirada-brain 37->39. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -49,8 +49,10 @@ ejecuta operaciones de geometría".
|
||||
## Detalle por crate
|
||||
|
||||
- **`mirada-layout`** — `Rect` + `split` (reparto exacto de píxeles),
|
||||
`LayoutMode` (`MasterStack`/`Monocle`/`Grid`/`Columns`), `Workspace`
|
||||
con foco cíclico y reordenado. Determinista.
|
||||
`LayoutMode` con 7 modos (`MasterStack`, `CenteredMaster`, `Spiral`
|
||||
—espiral de Fibonacci—, `Grid`, `Columns`, `Rows`, `Monocle`) y
|
||||
`LayoutMode::next()` para el ciclo, `Workspace` con foco cíclico y
|
||||
reordenado. Determinista.
|
||||
- **`mirada-protocol`** — `WindowPlacement`, los enums `BrainCommand` y
|
||||
`BodyEvent`, el marco `postcard` con prefijo `u32` LE
|
||||
(`write_frame`/`read_frame`, guard `MAX_FRAME`) y el puente
|
||||
@@ -109,6 +111,10 @@ que un front-end (`Keybind` → `lookup` → `apply`); hay otros tres:
|
||||
- **`DesktopAction::FocusWindow(WindowId)`** — direccionamiento directo de
|
||||
una ventana (no sólo ciclar con `FocusNext`/`Prev`); si está en otro
|
||||
escritorio, salta a él. Lo usan la taskbar y `mirada-ctl`.
|
||||
- **`SetLayout`/`CycleLayout`/`GrowMaster`/`ShrinkMaster`** — los 7 modos
|
||||
de teselado se intercambian por el API (`mirada-ctl layout spiral`), y
|
||||
el área maestra se redimensiona en caliente (`grow`/`shrink-master`,
|
||||
atajos `Super+l`/`Super+h`).
|
||||
- **HUD interactivo** (app `mirada`) — los pips de escritorio y las
|
||||
ventanas del lienzo son clicables: clic = `apply` de la acción.
|
||||
- **`mirada-ctl`** — control externo por línea de comandos
|
||||
@@ -130,8 +136,8 @@ gráficos para ejercitar `mirada-ctl` en modo desatendido.
|
||||
|
||||
## Estado
|
||||
|
||||
Implementado y verde: `mirada-layout` (22 tests), `mirada-protocol`
|
||||
(9), `mirada-brain` (37), `mirada-link` (7), `mirada-body` (13), las
|
||||
Implementado y verde: `mirada-layout` (26 tests), `mirada-protocol`
|
||||
(9), `mirada-brain` (39), `mirada-link` (7), `mirada-body` (13), las
|
||||
apps `mirada` y `mirada-compositor` (compilan; verificación visual
|
||||
manual) y `mirada-ctl` (CLI, probado vía el ejemplo `headless-ctl`).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user