srdusr
aboutsummaryrefslogtreecommitdiffstats
path: root/crates
diff options
context:
space:
mode:
authorsrdusr <[email protected]>2024-04-05 16:24:00 +0200
committersrdusr <[email protected]>2024-04-05 16:24:00 +0200
commit592bd3716c0aa5a47a5eb43f45f55844de9db382 (patch)
treed574766088fed32728ff22716689c84011003da9 /crates
parent2083ca7c88bc3e4b52ec68af384f334be1da2141 (diff)
downloadsrdwm-592bd3716c0aa5a47a5eb43f45f55844de9db382.tar.gz
srdwm-592bd3716c0aa5a47a5eb43f45f55844de9db382.zip
Track the daily-driver blockers for srdwm-wayland as TODOs
layer-shell, clipboard (wl_data_device_manager), session-lock, and udev-backend multi-monitor support are the gaps identified when deciding srdwm isn't ready to add to a session picker yet - recorded in docs/IMPLEMENTATION_STATUS.md's "Not implemented anywhere yet" section and as inline TODOs at the relevant code (CompState's delegate_*! list, udev.rs's find_connected_output).
Diffstat (limited to 'crates')
-rw-r--r--crates/wayland/src/lib.rs9
-rw-r--r--crates/wayland/src/udev.rs3
2 files changed, 12 insertions, 0 deletions
diff --git a/crates/wayland/src/lib.rs b/crates/wayland/src/lib.rs
index 507102e..fa56517 100644
--- a/crates/wayland/src/lib.rs
+++ b/crates/wayland/src/lib.rs
@@ -309,6 +309,15 @@ delegate_xdg_decoration!(CompState);
delegate_shm!(CompState);
delegate_seat!(CompState);
delegate_output!(CompState);
+// TODO: delegate_layer_shell! (wlr-layer-shell-unstable-v1) - bars,
+// launchers, notification daemons, and lock-screen UIs are layer
+// surfaces, not xdg_toplevels; none of them can run under srdwm without
+// this. See docs/IMPLEMENTATION_STATUS.md's "Not implemented anywhere
+// yet" section.
+// TODO: delegate_data_device! (wl_data_device_manager) - no clipboard/
+// drag-and-drop between Wayland clients without it.
+// TODO: session-lock (ext-session-lock-v1) - no way for a lock-screen
+// client to actually lock input/display without it.
pub struct WaylandPlatform {
display: Display<CompState>,
diff --git a/crates/wayland/src/udev.rs b/crates/wayland/src/udev.rs
index c0e2f89..dcd5f76 100644
--- a/crates/wayland/src/udev.rs
+++ b/crates/wayland/src/udev.rs
@@ -331,6 +331,9 @@ fn mode_refresh_mhz(mode: &DrmMode) -> i32 {
}
}
+// TODO: multi-monitor - returns only the first connected connector; no
+// hotplug, no independent per-output layout. See
+// docs/IMPLEMENTATION_STATUS.md's "Not implemented anywhere yet" section.
fn find_connected_output(card: &Card) -> PlatformResult<(crtc::Handle, connector::Handle, DrmMode)> {
let res = card.resource_handles().map_err(err)?;
let connectors: Vec<connector::Info> = res.connectors().iter().flat_map(|&h| card.get_connector(h, true)).collect();