feat(mirada): multi-monitor real — cada salida tesela su escritorio
El Desktop deja de teselar sólo la salida primaria. Cada Output muestra
un escritorio virtual distinto y relayout() las tesela todas en un solo
Place que cubre todas las pantallas.
- Output { id, rect, workspace }; focused_output reemplaza al índice
global active. active_index() = el escritorio de la salida enfocada.
- OutputAdded asigna el primer escritorio libre; OutputRemoved deja sus
ventanas en su escritorio y reajusta el foco. reflow_outputs() las
recoloca en fila.
- SwitchWorkspace actúa sobre la salida enfocada; si el escritorio
pedido ya lo muestra otra salida, las intercambia (invariante: un
escritorio se ve en una salida como mucho).
- DesktopAction::FocusOutputNext (Super+o) mueve el foco entre
monitores. El foco del teclado es único — relayout() lo unifica a la
ventana enfocada de la salida enfocada.
Verificado end-to-end con headless-ctl (ahora 2 salidas).
mirada-brain 52->58 tests.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -1073,5 +1073,14 @@
|
||||
|
||||
|
||||
|
||||
Multi-monitor real — el Desktop tesela todas las salidas:
|
||||
Cada Output muestra un escritorio distinto; relayout() las tesela todas en un solo Place.
|
||||
Pedir un escritorio que ya muestra otra salida → las intercambia (ningún escritorio se ve 2 veces).
|
||||
mirada-ctl focus-output-next # Super+o — mueve el foco al siguiente monitor
|
||||
El foco del teclado es único: sólo la ventana enfocada de la salida enfocada.
|
||||
cargo run -p mirada-brain --example headless-ctl # ahora levanta 2 salidas
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user