feat(mirada): reglas de ventana — escritorio y flotante por app_id
mirada-brain::rules — config declarativa que decide qué hacer con una ventana al abrirse, mismo patrón que el keymap. - Rule casa por subcadena de app_id y/o title (sin distinguir mayúsculas; vacío = cualquiera) y aplica un destino: workspace (1..9) y/o floating. Gana la primera regla que case. - Rules en RON (~/.config/mirada/rules.ron); la primera vez se escribe una plantilla con ejemplos comentados, si está corrupta se ignora. - Desktop consulta Rules::resolve en cada WindowOpened — el evento ya trae app_id/title — y abre la ventana en su escritorio, flotando si toca. set_rules en Desktop; las apps cargan rules.ron al arrancar. mirada-brain 42->51 tests. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@@ -13,6 +13,7 @@
|
||||
//! - [`action`] — las acciones de escritorio y el mapa de teclas.
|
||||
//! - [`desktop`] — el [`Desktop`]: el estado y el bucle `evento → comandos`.
|
||||
//! - [`keymap`] — el [`Keymap`] configurable en RON, recargable en caliente.
|
||||
//! - [`rules`] — las [`Rules`] de ventana (escritorio/flotante por `app_id`).
|
||||
//! - [`ctl`] — el API de control externo (`mirada-ctl`, taskbars, scripts).
|
||||
|
||||
#![forbid(unsafe_code)]
|
||||
@@ -21,11 +22,13 @@ pub mod action;
|
||||
pub mod ctl;
|
||||
pub mod desktop;
|
||||
pub mod keymap;
|
||||
pub mod rules;
|
||||
|
||||
pub use action::{default_keymap, DesktopAction, WORKSPACE_COUNT};
|
||||
pub use ctl::{CtlConn, CtlReply, CtlRequest, CtlServer, WindowLine};
|
||||
pub use desktop::{Desktop, WindowInfo};
|
||||
pub use keymap::{Keymap, KeymapError, KeymapWatch};
|
||||
pub use rules::{Rule, RuleOutcome, Rules};
|
||||
|
||||
pub use mirada_layout::{LayoutMode, LayoutParams, Rect, WindowId, Workspace};
|
||||
pub use mirada_protocol::{BodyEvent, BrainCommand, OutputId, WindowPlacement};
|
||||
|
||||
Reference in New Issue
Block a user