8 ms·
Wprs – rootless remote desktop for Wayland (and X11, via XWayland) applications
- hongspike 2y agoCool project. Maybe a dumb question but what rendering method does Wprs use?
- nicolasavru 2y agowprs doesn't do its own rendering, it passes through already-drawn image buffers from applications on the server side to the local compositor on the client side, which then composits/renders them however it wishes to.
- deleted 2y ago[deleted]
- dannyobrien 2y agoCan anyone compare this to waypipe, which I've heard of more often for remote wayland execution.
- coppsilgold 2y ago> Can anyone compare this to waypipe, which I've heard of more often for remote wayland execution. https://github.com/wayland-transpositor/wprs#comparison-to-waypipe https://github.com/wayland-transpositor/wprs#comparison-to-w...
- dsp_person 2y agoCan this be used to switch back and forth between different computers? If I remember correct Xpra supports this. E.g. (1) open a session on desktop with firefox, thunderbird, vscode. (2) Then grab laptop and go to a coffee shop, connect with wayland-tranpositor to the desktop to resume the session with those programs where you left off with them. (3) Then go home and resume from the desktop. I guess for (1) and (3) you are just running both the server and client on the desktop, and then for (2) you close the client on the desktop and run it on the laptop? It would be cool if it could do shadowing, or have multiple clients running at the same time.
- XorNot 2y agoThere's a second crucial element to this: can it lock the local screen while you do this? I did this a whole lot in the lab with Windows - walk away, and log in remotely and monitor my session, then head back in and log back on locally. I never found a way to do this with Linux that just restores the session the way Windows seems able to. Instead all I ever found was "the remote screen is unlocked and the cursor is moving" or whatever.
- coryrc 2y agoAFAIK the only way is to always run a remote X server (i.e. Xvnc) and always connect to it, even when sitting at the local computer. Maybe you could do something with dpms but that leaves the keyboard active still.
- XorNot 2y agoYeah see this has always been where I think Windows dominates Linux. Going from local to RDP to local feels seamless and secure. I wish we could get that experience on Linux.
- doubled112 2y agoDoes GNOME's new RDP server get us any closer to this dream?
- deleted 2y ago[deleted]
- nicolasavru 2y agoYes. A wprs session is persistent on the server (currently a single session per user, we're going to support multiple sessions for a user when we get to it), so you can connect/reconnect from different client computers. If you start the application in a local wprsc connecting to a local wprsd instead of in the local compositor directly, you can later connect to the session with a remote wprsc. Locking the screen (the other subthread in here) is not applicable to this, applications are drawn wherever the wprsc is running and only one wprsc can be connected at a time.
- metadat 2y agoIs it better than xrdp though? I found xrdp last week and it's stellar, basically a microsoft-compatible RDP server for Linux. It's a complete solution, no drama and simply amazing. Every other Linux remote desktop solution I tried was a mess, including Xpra (which was quite involved to even get installed and Debian, and then a letdown, yikes). I wonder what happens with Wprs when you try to launch virt-manager, which requires root.
- shmerl 2y agoI think freerdp is a better option since it has integration with Wayland and even some Wayland DEs are adopting it as remote access feature.
- prmoustache 2y agoFrom what I understand freerdp is only the client component while xrdp is the server component.
- shmerl 2y agoI think freerdp has both client and server implementation.
- pxc 2y agoFor me, definitely yes, because it's rootless. Being able to stream individual windows is an absolutely killer feature. Having to deal with non-native window management is a nightmare, not to mention that it leaves you pulling down more pixels than you need to. Microsoft has similar functionality but it's gated behind enterprise licenses. I ran Xpra for free when I was a kid and it was magical; many years later I've still never played with Windows' Terminal Services, which is the MS thing that can do rootless IIRC. The way MS gates the necessary windowing features is why to this day you can't do rootless with X2Go or Xpra with normal Windows clients. Is there special reason the usual GUI PolKit privilege elevation wrappers can't work with a remote X session? I think I used to be able to use kdesu and similar just fine over Xpra. Note that 'rootless' in this context (windowing) means 'without a root window', i.e., without rendering a desktop. It has nothing to do with the usage in projects like podman where 'rootless' means 'not requiring elevated privileges'.
- tripdout 2y agoHow would this compare to a Wayland VNC server like WayVNC?
- froh 2y agovnc isn't rootless, is it?
- billpg 2y ago"We've built X. It allows you to run graphical applications over a network." "Here's an optimization for when the X display is the same machine as the process." "We've built Wayland. We all run applications on the same machine as the display and X gets in the way." "We'd like to run applications from machines over the internet." "We've built Wprs. It allows you to run graphical applications over a network." That's the circle of life.....
- kaba0 2y agoX being network transparent hasn’t been true for decades — no one uses xmotif and similar GUI libs, they just grab a buffer and paint stuff themselves, making the X protocol an inefficient format to carry bitmaps around. Local-first is the correct approach as the end computers are significantly more powerful than 30 years ago. Plus, we can transport bitmaps far more efficiently with compression, so it’s quite obviously an improvement on every metric, it is pretty shortsighted to note it down as circular development.
- aragilar 2y agoI'm not sure this is true for apps that commonly forwarded though? My impression is tk for example uses xlib heavily and so has much better behaviour over the network than GTK, and the majority of apps I've seen where the audience uses X forwarding commonly seem to be using tk.
- epcoa 2y agoSomebody in a thread the other day lamented how almost always X clients are sensitive to network drops. And the suggestion is to use Xpra! (It’s “like tmux”) Xpra doesn’t forward X though, it is a rootless X server that then forwards everything as compressed bitmaps like VNC. It’s a nice homage to how awful X is even at its one oft purported benefit around here. X11 network transparency is a pretty poor technology, one can go through each of the “Fallacies of Distributed Computing” document to understand why.
- 2y ago
- npteljes 2y agoWhat I never understood is how Spice is not elevated to a separate product. It does a fantastic job handling the graphical, audio, and peripheral connections to VMs, so how come there isn't a Spice server that I can just install to whatever Linux system and remote to it with the Spice clients that are already there? Also, I'd like to plug Sunshine - I think it works on Wayland, and from the tests I did it does a fantastic job on a local network to make a desktop usable, even from an Android device. The downside is that whatever happens on the remote screen, it must happen on the host screen as well, so you can't have the host locked while you do gaming on it for example.
- IceWreck 2y agoI love Spice too but it has been deprecated for a while now. https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/8.6_release_notes/deprecated_functionality https://access.redhat.com/documentation/en-us/red_hat_enterp...
- npteljes 2y agoOh no. Thanks for passing the news along. EDIT: just an FYI for everyone interested, here's a bit of info about how Proxmox is handling it. TL;DR Spice is still at least maintained until 2029, so it's not going to just go away anytime soon. https://forum.proxmox.com/threads/plans-for-spice.113339/ https://forum.proxmox.com/threads/plans-for-spice.113339/
- minetest2048 2y agoOn that thread they mention virt-manager being deprecated, how can that be?
- 1oooqooq 2y agomost libvirt stuff is just an attempt by google and redhat to take over qemu.
- b112 2y ago
- Shish2k 2y agoIs there any open-source remote desktop that forwards the full desktop experience (not just pixels, but also audio, input devices beyond keyboard & mouse, with high refresh rates and low latency)?
- M95D 2y agoAren't you asking too much? We barely have these on the local machine...
- aruggirello 2y agoXpra?
- the8472 2y agopixels, audio, input devices should work these days. additional devices could be forwarded with usbip high refresh rates and low latency are non-trivial problems because they require realtime video encoding which is less bandwidth efficient than offline encoding which means you need a network transport which can shovel high bandwidth data at low latency and gracefully handle packet losses. if you do it over the open internet you also need to adapt to variable bandwidth. all these things have been done, but someone would still need to tie all of it together in an open source solution. There's the sunshine/moonlight combo for remote game streaming, but it lacks other features for remote desktop use.
- nicolasavru 2y agowprs: * does audio by forwarding a pulseaudio/pipewire socket, but it doesn't work so well for remote networks. I'd like to do something better in the future. * defaults to 60fps and can support significantly higher refresh rates, depend on your cpu and bandwidth. * aims to be low latency but prioritizes quality and so requires a good cpu and network connection to be low latency * should be able to handle (possibly with some additional code) any input devices wayland supports
- Qwertious 2y agoI think Arcan can do that ( https://arcan-fe.com/ https://arcan-fe.com/ ). And arguably Plan 9?
- binkHN 2y ago> Like xpra, but for Wayland, and written in Rust.
- mijoharas 2y agoOne thing I couldn't find in the project. What does WPRS stand for?
- therein 2y agoMay be `wayland-pseudo-root-server`.
- nicolasavru 2y agoxpra, but for wayland, and in rust x->w, ra->rs