mirror of
https://github.com/CloudNebulaProject/wayray.git
synced 2026-04-10 13:10:41 +00:00
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
30 lines
778 B
TOML
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",
|
|
] }
|