feat(mirada): API de acciones — mirada-ctl + HUD interactivo
Toda acción de escritorio converge en Desktop::apply(DesktopAction); el keymap era sólo un front-end. Esta tanda añade los otros tres. - DesktopAction::FocusWindow(WindowId): direccionamiento directo de una ventana (no sólo ciclar); si está en otro escritorio, salta a él. DesktopAction pasa a ser Serialize/Deserialize (postcard) además de Display/FromStr. - mirada-brain::ctl: el API de control externo. CtlRequest/CtlReply (marco postcard), CtlServer/CtlConn no bloqueantes y send_request. El Cerebro abre el socket y atiende en su bucle: la app mirada siempre, mirada-compositor sólo con el Cerebro embebido. - mirada-ctl: CLI de control estilo swaymsg/hyprctl — `mirada-ctl focus-next | focus-window 5 | workspace 3 | windows`. Parsea la acción de los argumentos vía FromStr. - HUD interactivo en la app mirada: pips de escritorio y ventanas del lienzo clicables (SwitchWorkspace / FocusWindow). - Ejemplo headless-ctl: un Cerebro sin gráficos para probar mirada-ctl en modo desatendido. Verificado end-to-end. mirada-brain: 29 -> 37 tests. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1012,5 +1012,20 @@
|
||||
|
||||
|
||||
|
||||
API de acciones — mirada-ctl + HUD interactivo:
|
||||
Toda acción converge en Desktop::apply(DesktopAction); el keymap es sólo un front-end más.
|
||||
mirada-ctl — control externo por CLI (estilo swaymsg/hyprctl):
|
||||
mirada-ctl focus-next # cambia el foco
|
||||
mirada-ctl focus-window 5 # enfoca una ventana concreta (FocusWindow: salta de escritorio si hace falta)
|
||||
mirada-ctl workspace 3 # va al escritorio 3
|
||||
mirada-ctl windows # lista las ventanas (id, escritorio, app, título)
|
||||
mirada-ctl actions # lista las acciones disponibles
|
||||
Socket de control aparte (mirada-brain::ctl: CtlRequest/CtlReply, marco postcard). Lo abre el Cerebro:
|
||||
siempre la app mirada; mirada-compositor sólo en modo embebido.
|
||||
HUD interactivo: en la app mirada, pips de escritorio y ventanas del lienzo son clicables.
|
||||
cargo run -p mirada-brain --example headless-ctl # Cerebro sin gráficos para probar mirada-ctl
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user