Skip to content

WIP Remote Desktop Portal#94

Draft
ids1024 wants to merge 1 commit intomasterfrom
remote-desktop
Draft

WIP Remote Desktop Portal#94
ids1024 wants to merge 1 commit intomasterfrom
remote-desktop

Conversation

@ids1024
Copy link
Member

@ids1024 ids1024 commented Sep 12, 2024

Requires pop-os/cosmic-comp#465.

This is the minimal require for a client that uses the portal to get a libei fd.

I guess we need a secure mechanism to get a libei fd for a specific device bitflag field, and this should implement the legacy non-ei methods by lazily connecting to an ei socket if they are used? This will also need a dialog.

@olafkfreund
Copy link

Hi @ids1024, I've built on the groundwork you started here and implemented a more complete RemoteDesktop portal in PR #271.

My implementation adds:

  • Consent dialog UI with device type chips (keyboard/pointer/touchscreen icons) and output/window selection tabs
  • Full session lifecycle management with proper cleanup
  • EIS socket pair creation and forwarding to the compositor via D-Bus (AcceptEisSocket)
  • Security hardening: consent dialog always shown (never skipped via restore data), device type validation, per-session socket isolation
  • Reuse of existing ScreenCast infrastructure (ScreencastThread, StreamProps)
  • i18n strings for the dialog

I followed the naming convention from your PR (remote_desktop.rs) and used your reis crate for the EIS protocol support.

On the compositor side, I have a fork at https://github.com/olafkfreund/cosmic-comp-rdp that provides the AcceptEisSocket D-Bus method, and an RDP server at https://github.com/olafkfreund/cosmic-rdp-server that uses the portal end-to-end.

Happy to collaborate on getting this upstream — let me know if you'd like me to adjust anything in #271 to align with your plans for the compositor integration or if there's a preferred approach for the EIS socket handshake.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants