From 592bd3716c0aa5a47a5eb43f45f55844de9db382 Mon Sep 17 00:00:00 2001 From: srdusr <99972264+srdusr@users.noreply.github.com> Date: Fri, 5 Apr 2024 16:24:00 +0200 Subject: 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). --- crates/wayland/src/lib.rs | 9 +++++++++ crates/wayland/src/udev.rs | 3 +++ 2 files changed, 12 insertions(+) (limited to 'crates') 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, 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 = res.connectors().iter().flat_map(|&h| card.get_connector(h, true)).collect(); -- cgit v1.2.3