8204852e3a
Los atajos de teclado dejan de estar cableados: ahora son un Keymap
configurable que vive sólo en el Cerebro. El Cuerpo nunca lo ve — sólo
recibe la lista de cadenas a interceptar (GrabKeys) y devuelve la
pulsada; es Desktop quien la traduce. Esa separación (qué interceptar
vs. qué significa) hace innecesario cualquier candado o Arc.
mirada-brain:
- keymap.rs — Keymap: from_ron/to_ron, load/save, load_or_init (escribe
un archivo por defecto documentado si falta; default sin pisar si está
corrupto), default_path (~/.config/mirada/keymap.ron), y watch sobre
notify para la recarga en caliente (KeymapWatch).
- DesktopAction: Display + FromStr — vocabulario textual estable
("focus-next", "layout:grid", "workspace:3"); evita los guiones que
romperían el RON de un enum.
- Desktop: with_keymap, set_keymap (cambio en caliente -> nuevo GrabKeys).
- Ejemplo keymap-default: imprime el archivo por defecto en RON.
Apps: mirada y mirada-compositor (modo embebido) cargan el keymap del
usuario al arrancar y lo recargan en caliente cuando el archivo cambia.
Disco RON, cable postcard (sólo la lista de cadenas), sin ejecutable
configurador. mirada-brain: 17 -> 29 tests.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
12 lines
395 B
Rust
12 lines
395 B
Rust
//! Imprime el keymap por defecto de mirada en formato RON — exactamente
|
|
//! lo que la app escribe la primera vez en `~/.config/mirada/keymap.ron`.
|
|
//!
|
|
//! ```sh
|
|
//! cargo run -p mirada-brain --example keymap-default
|
|
//! cargo run -p mirada-brain --example keymap-default > ~/.config/mirada/keymap.ron
|
|
//! ```
|
|
|
|
fn main() {
|
|
print!("{}", mirada_brain::Keymap::default().documented_ron());
|
|
}
|