⎇ be61ddb6eb441193c4374a243fbb00aed47b42de
crates/modules/mirada/mirada-brain/src/lib.rs
Historia
Quién tocó qué
crudo
feat(mirada): reglas de ventana — escritorio y flotante por app_id
1//! `mirada-brain` — el orquestador de escritorio del compositor.
2//!
3//! Es el "Cerebro" de mirada sin pantalla: mantiene el estado del
4//! escritorio (salidas, escritorios virtuales, ventanas, foco), consume
5//! los [`BodyEvent`]s que reporta el Cuerpo y produce los
6//! [`BrainCommand`]s que el Cuerpo aplica.
7//!
8//! Es agnóstico de GPUI y de `smithay`: una app GPUI sólo lo *envuelve*
9//! para pintar un HUD y para mover los bytes por el cable de
10//! [`mirada_protocol`]. Toda la lógica vive aquí y es determinista —
11//! la misma secuencia de eventos da siempre el mismo estado.
12//!
13//! - [`action`] — las acciones de escritorio y el mapa de teclas.
14//! - [`desktop`] — el [`Desktop`]: el estado y el bucle `evento → comandos`.
15//! - [`keymap`] — el [`Keymap`] configurable en RON, recargable en caliente.
16//! - [`rules`] — las [`Rules`] de ventana (escritorio/flotante por `app_id`).
17//! - [`ctl`] — el API de control externo (`mirada-ctl`, taskbars, scripts).
18
19#![forbid(unsafe_code)]
20
21pub mod action;
22pub mod ctl;
23pub mod desktop;
24pub mod keymap;
25pub mod rules;
26
27pub use action::{default_keymap, DesktopAction, WORKSPACE_COUNT};
28pub use ctl::{CtlConn, CtlReply, CtlRequest, CtlServer, WindowLine};
29pub use desktop::{Desktop, WindowInfo};
30pub use keymap::{Keymap, KeymapError, KeymapWatch};
31pub use rules::{Rule, RuleOutcome, Rules};
32
33pub use mirada_layout::{LayoutMode, LayoutParams, Rect, WindowId, Workspace};
34pub use mirada_protocol::{BodyEvent, BrainCommand, OutputId, WindowPlacement};