compositor/ — Cargo workspace root
Cargo.toml — workspace members
crates/semantic/ — aulinx-semantic (the core library)
src/
lib.rs — public API
graph.rs — semantic scene graph data structure
node.rs — SemanticNode: window, element, text, etc.
diff.rs — incremental change detection + events
query.rs — scene.query(), scene.find(), filters
action.rs — element.activate(), semantic actions
sources/
mod.rs — Source trait (pluggable data providers)
atspi.rs — AT-SPI accessibility tree → nodes
compositor_ipc.rs — Sway/Hyprland/niri IPC → windows
direct.rs — direct surface injection (used by compositor)
crates/daemon/ — aulinx-semanticd (standalone daemon, Product 1)
src/
main.rs — daemon entry: detect compositor, start sources, serve IPC
ipc.rs — Unix socket JSON-RPC server
events.rs — event stream subscriptions
crates/compositor/ — aulinx-compositor (Smithay compositor, Product 2)
src/
main.rs — entry, backend selection, event loop
state.rs — AulinxState + Smithay delegates
backend/ — winit.rs + udev.rs
shell/ — xdg.rs + layer.rs + decoration.rs
layout/ — tiling.rs + floating.rs
input/ — physical + injection
render/ — Glow renderer
semantic_bridge.rs — feeds surface data directly into aulinx-semantic
ipc.rs — unified IPC: semantic + compositor commands