wayray/crates/wrsrvd/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
778 B
TOML

[package]
name = "wrsrvd"
edition.workspace = true
version.workspace = true
license.workspace = true
[features]
# Enable the Winit development backend (requires display server).
# Build with: cargo build -p wrsrvd --features winit
winit = ["smithay/renderer_gl", "smithay/backend_winit"]
[dependencies]
wayray-protocol.workspace = true
wayray-wm-protocol = { workspace = true, features = ["server"] }
tracing.workspace = true
tracing-subscriber.workspace = true
miette.workspace = true
thiserror.workspace = true
serde.workspace = true
ctrlc = "3"
quinn.workspace = true
rustls.workspace = true
rcgen.workspace = true
tokio.workspace = true
smithay = { version = "0.7", default-features = false, features = [
"wayland_frontend",
"desktop",
"renderer_pixman",
] }