Skip to content

Arquitectura de chadwm-rs

Cómo funciona el port espejo de chadwm (dwm en C) a Rust — el bucle de eventos, las tres tablas de punteros a función y el binario en C usado como oráculo.

Un window manager de X11 no es una jerarquía de objetos: es un bucle de eventos colgando de tres tablas de punteros a función y un bloque de estado global mutable. chadwm-rs es un port espejo — no una reescritura idiomática — de chadwm (a su vez un fork de dwm 6.5) desde C hacia Rust, y este documento explica el mecanismo real.

01 · El mecanismo — Todo pasa por una tabla que empieza vacía: setup(), init_handlers() y el bucle bloqueado en XNextEvent.

02 · Las tablas — Tres tablas de punteros a función, no una: handlers de evento, layouts y atajos de teclado.

03 · La división — Un archivo de 3 896 líneas repartido en cinco módulos, y por qué el corte cayó donde cayó.

04 · La verificación — El binario en C como oráculo ejecutable: comparación fotograma a fotograma contra el original.

05 · Los límites — Lo que no se puede «mejorar» sin dejar de ser un port espejo.

MétricaValor
Líneas de C portadas5 678
Líneas de Rust8 679
Módulos10
Fotogramas idénticos19/19