wayray/Cargo.toml
Till Wegmueller f2aebe04a6 Implement pluggable window management protocol (Phase 2.5)
Add a custom Wayland protocol (wayray_wm_v1) that allows external
window manager processes to control layout, focus, and keybindings
in the WayRay compositor, inspired by River's two-phase transaction
model.

New crates:
- wayray-wm-protocol: Wayland protocol XML + generated server/client
  bindings via wayland-scanner for four interfaces (manager, window,
  seat, workspace)
- wr-wm-tiling: Reference BSP tiling WM demonstrating the protocol

Compositor changes:
- WindowManager trait + WmState coordinator abstracts WM behavior
- Built-in floating WM (centered windows, click-to-focus, z-ordering)
- Protocol server with GlobalDispatch/Dispatch for all interfaces
- Hot-swap (replaced event) and crash resilience (fallback to built-in)
- new_toplevel delegates to WM instead of hardcoding 800x600 at (0,0)
- WM render phase integrated into headless frame pipeline
2026-04-07 22:29:19 +02:00

30 lines
871 B
TOML

[workspace]
resolver = "3"
members = [
"crates/wayray-protocol",
"crates/wayray-wm-protocol",
"crates/wrsrvd",
"crates/wrclient",
"crates/wradm",
"crates/wr-wm-tiling",
]
[workspace.package]
edition = "2024"
version = "0.1.0"
license = "MPL-2.0"
[workspace.dependencies]
wayray-protocol = { path = "crates/wayray-protocol" }
wayray-wm-protocol = { path = "crates/wayray-wm-protocol" }
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
miette = { version = "7", features = ["fancy"] }
thiserror = "2"
serde = { version = "1", features = ["derive"] }
postcard = { version = "1", features = ["alloc"] }
zstd = "0.13"
quinn = "0.11"
rustls = { version = "0.23", default-features = false, features = ["ring", "std"] }
rcgen = "0.13"
tokio = { version = "1", features = ["rt-multi-thread", "macros", "net", "sync"] }