APIs for persistent remote access and headless/hybrid sessions

Neal Gompa ngompa13 at gmail.com
Sat Mar 16 12:12:14 GMT 2024

On Fri, Mar 15, 2024 at 7:52 PM Erik Jensen <rkjnsn at google.com> wrote:
> Thinking about this more, I'm not really sure extending the existing
> Portal API makes sense.
> Given that remote assistance (well served by the existing API) wants
> * Explicit user consent to share
> * To allow the local user to select what to share
> * To mirror the selected existing displays / windows
> while remote assistance wants
> * Persistent access
> * To ensure the session is curtained or headless to prevent
> observation and interaction from the local console
> * Full control over the virtual monitor layout and the ability to
> capture all of it
> It seems like a unified API would have enough special cases depending
> on which access mode is in use that it wouldn't really be worth it,
> especially given that the actual capture (PipeWire) and input
> injection (libei) would be the same either way. E.g., even with
> persistent permission tokens, the existing ScreenCast portal doesn't
> really fit the remote access use case, and a separate API to control
> the layout and get the resulting PipeWire streams without user monitor
> selection likely makes more sense.
> > I suspect we might need Plasma Login Manager to exist first before
> > we can achieve this, though. The kind of integration that GDM and
> > GNOME Shell have allowed them to pull off what they did there, I'm
> > not sure how to do it without that integration.
> Ideally, I'd like to have a standard protocol that is both lightweight
> and flexible enough that it wouldn't require any deep integration
> between the login manager and desktop environment, but could be
> implemented by even lightweight login managers.

I would like that too, but we currently don't even have a standard
specification for display managers themselves.

I thought we did, but then I did the research about the protocol that
SDDM implements[1], and it turns out that it was created by LightDM
over a decade ago[2] and was never documented as a standard in the
first place. GDM's protocol is quite a bit more sophisticated (but
also not standardized). So that's a problem that we might need to
address first.

Also, it looks like there's a draft spec[3] being worked on by Jonas
Ådahl about a remote desktop protocol (presumably based on what GNOME
has been working on).

[1]: https://github.com/sddm/sddm/commit/069f1d7d91bca55673d78cbace448942d46965d6
[2]: https://github.com/canonical/lightdm/commits/main/src/display-manager.xml
[3]: https://gitlab.freedesktop.org/jadahl/xdg-specs/-/merge_requests/1

真実はいつも一つ!/ Always, there's only one truth!

More information about the kde-devel mailing list