21 ms·
Xpra: Persistent Remote Applications for X11
- darau1 2y agoThe description makes me think this can reproduce a cool workflow demonstration I saw a few years ago on reddit[1]. [1]: https://www.reddit.com/r/unixporn/comments/k1eu0n/durden_workflow_network_transparency_101/ https://www.reddit.com/r/unixporn/comments/k1eu0n/durden_wor...
- vidarh 2y agoYou could probably tweak something like Barrier for the kvm/cursor move, and use XPRA to move the window, sure. No idea how much/little work it'd be but doesn't seem like it should be all that complex.
- forgotpwd16 2y agoThere're a few options (including outdated) that can be used to replicate this workflow. Easiest being winswitch (which is based on xpra).
- the9 2y ago[flagged]
- spencerflem 2y agoThis was very cool, and is made in Arcan! https://arcan-fe.com/ https://arcan-fe.com/ a project I just recently discovered and am very excited about
- throwaway1985s 2y agoIt has been taken much further since: https://arcan-fe.com/2023/11/18/a12-visions-of-the-fully-networked-desktop/ https://arcan-fe.com/2023/11/18/a12-visions-of-the-fully-net... The actual project work is also sponsored by NLnet and received new grants: https://nlnet.nl/project/Arcan-A12-directory/ https://nlnet.nl/project/Arcan-A12-directory/ https://nlnet.nl/project/Arcan-A12-tools/ https://nlnet.nl/project/Arcan-A12-tools/
- Filligree 2y agoOkay, but X11 is deprecated. Is there a modern version?
- jacknews 2y agomaybe this: https://github.com/wayland-transpositor/wprs https://github.com/wayland-transpositor/wprs
- skirmish 2y agoDoes it work for anybody? When I tried it a few weeks ago, it would freeze on any dialog boxes launched by an application, then would unfreeze if you managed to close the dialog without being able to see it.
- forgotpwd16 2y agoDeprecated according to Red Hat maybe but very much still relevant.
- blahgeek 2y agoI don't think the existence of Wayland means X11 is deprecated. Lots of people (including myself) would prefer the perfectly working X11 than the feature-incomplete backward-incompatible "modern" wayland
- necrotic_comp 2y agoI haven't yet seen any compelling reason to move off of X11. It's been years since I've checked - what's the current state of the art ?
- ChoHag 2y ago> what's the current state of the art ? Wayland is going to make 2024 the year of Linux on the Desktop! Any day now...
- 2y ago
- 4ad 2y agoLast I checked this didn't support HiDPI, a technology invented over 10 years ago.
- adrian_b 2y agoI have not used Xpra, so I do not know if it has any problems with this, but a priori I do not see why an application like Xpra would need to be aware about the screen resolution. That should be handled by the X clients and servers. I have used only 4k monitors for more than 10 years in Linux and the only applications with which I frequently had problems were various programs written in Java by morons, which were usually proprietary applications and some times quite expensive, but they lacked such elementary customization features like allowing the user to change the font, or at least its size, while failing to use the configuration settings of the graphic desktop, i.e. the value set for the monitor DPI, like all non-Java programs.
- simcop2387 2y agoThe way Xpra works is that it's both a server and client in it's own right. So it needs to be aware for the final client involved to be able to learn about it from the other side of the chain, so it does need to be aware of it in order for applications to know that they need to adjust themselves. What this results in is that the client you're running through Xpra will just assume it's a normal 96 DPI display from yesteryear usually. I think you can do some stuff to tell Xpra that it should be a higher DPI but that'll also make it so that the application will be gigantic on a low dpi display, something that's pretty typical for X11 since it doesn't properly support mixed DPI environments (i.e. a laptop screen that's high dpi and an external monitor that is low dpi).
- ndiddy 2y agoX11 supports mixed DPI with the RANDR extension. Applications can use the per-monitor information provided by RANDR to get the DPI information for each output, and use this to calculate font and widget sizes. Everything looks nice as long as you don't have a window spanning multiple screens. The problem is that while Qt has supported this functionality since 5.9, GTK seemingly has no interest in implementing it and most other toolkits or raw Xlib programs don't support it either.
- BLKNSLVR 2y agoI tried Xpra for remote applications some four to five years ago when I migrated from Windows to Linux and needed a Remote Desktop (type) alternative. I stuck with it for a while in advance of numerous other options, until I found NoMachine - which doesn't do remote applications but does do full remote desktop and has the closest 'feel' to being local-machine than anything other than Windows Remote Desktop. I (ironically?) dislike Microsoft just that little bit extra for making Remote Desktop so damn good whilst progressively destroying the Windows experience. I would like to try Xpra again, but I've got a growing list of "I'd like to try that's" that even the top priorities only get small bites taken out of them per week / month - and my current workflow is pretty good.
- hparadiz 2y agoKRDP Server is getting there. I was able to play Civ VI over it from my Macbook Air with decent fps.
- lostmsu 2y agoSadly you first have to login locally in order to use it. Or has that changed yet?
- hparadiz 2y agoFor now yes. There's only 4 people really working on it. But the most difficult part of it was the stream itself with enough performance for video and gaming at a decent fps and I can say that I was able to play civ vi over it so at this point it's the task of cleaning up the way it works.
- lostmsu 2y agoNever underestimate the amount of work needed for authorization.
- KronisLV 2y agoFor remote desktop use cases, I’ve found RustDesk to be pretty good, especially if you can self host the relay: https://github.com/rustdesk/rustdesk https://github.com/rustdesk/rustdesk I especially enjoyed that I can use AV1 for the encoding (better quality even at lower bitrates), being able to switch resolutions easily and also the response times being pretty quick.
- jesprenj 2y agoOhhh, that's what it's for! I use it for scaling x11 apps with the run_scaled script that's shipped with xpra (:
- jimbosis 2y agoI'm half-heartedly trying to RTFM of 'xpra', but haven't found the 'run_scaled' script yet. If it's not too much trouble, can you please reply with the commands you use to scale an X11 program? (I'm on Devuan Daedalus 5.0, ~= Debian Bookworm 12.0.) (I currently use 'xzoom' to scale X11 programs, but it's a little kludgy.) EDIT: Single quotes for all program names. Bookworm, not Bookwork.
- elitepleb 2y agohttps://github.com/kaueraal/run_scaled https://github.com/kaueraal/run_scaled
- kaueraal 2y agoThis is the old, original version by me. xpra itself ships nowadays an improved version.
- deleted 2y ago[deleted]
- kaueraal 2y agoXpra itself ships this script, but Debian’s version is quite old. You need at least 4.1 and Debian Bookworm seems to have 3.1. Xpra seems to have an own apt repo you can probably use.
- alchemist1e9 2y agoOnce you have GPU server side encoding and client GPU decoding all working correctly with NVENC end to end there is nothing like it in terms of speed and performance for remote work. With a reasonable ping latency like 20-30ms and quality link a user on a cheap gaming laptop connected to a decent beefy server with the GPU encoding working can perceive the remote browser window as faster than their local browser.
- silasb 2y agoAny good guides for this?
- alchemist1e9 2y agoThis is going to be very unhelpful for most but I use nixpkgs and end up applying some build tweaks to make sure all GPU capabilities are properly supported. That said I know there is newest version 6 which Ubuntu/debian users should be able to add the xpra apt sources to get and it might all just work out of the box. I should check.
- coretx 2y agoThe first one to dump this into flutter will probably be onto something
- amelius 2y agoIf you want to run remote applications in a browser, you could use: https://github.com/Xpra-org/xpra-html5 https://github.com/Xpra-org/xpra-html5
- gdevenyi 2y agoThe SSH support in the GUI application isnt very good which precludes me recommending it to my users sadly.
- totaam 2y agoPerhaps your users don't have the same abilities with ssh? The reason why xpra switched to paramiko as default ssh implementation is because it makes it possible to integrate (cross platform too) with the GUI so that asking for passphrases or passwords can be handled by the xpra process itself (it may already have the password or it may delegate to pinentry or gpg agent or putty agent or whatever). This also means that ssh errors can be handled much more gracefully - natively in the code. With openssh launched as a subprocess, the user interface is non-existent, and when the ssh process fails, all the xpra process sees is a dead process with a non-zero exit code - which is much more difficult to handle gracefully.
- aidenn0 2y agoI find it really annoying that it seems to default to paramiko for ssh support. I already have all of my ssh setup via openssh (e.g. jumphosts, identity files, connection multiplexing), and I have to pass "--ssh=ssh" to get any of that to work.
- kragen 2y agothis sounds like something you can fix with a two-line shell script #!/bin/sh exec /usr/bin/xpra --ssh=ssh "$@"
- totaam 2y agoYou're making it way more complicated than it should be. Just edit the defaults in `/etc/xpra/conf.d/40_client.conf`: https://github.com/Xpra-org/xpra/blob/eedf34ecef3a04d0867709b32080535d52e90336/fs/etc/xpra/conf.d/40_client.conf.in#L27-L33 https://github.com/Xpra-org/xpra/blob/eedf34ecef3a04d0867709... (or your personal defaults in `~/.config/xpra`)
- caohongyuan 2y ago[dead]
- beardog 2y agoI use xpra to run apps in VMS but seamlessly render them on my desktop. Allows me to have a qubes type workflow without using qubes. Probably not quite as secure, but you can disable features for untrusted servers.
- fb03 2y agoQuick question: Why would you need Xpra for this, or what are the advantages of Xpra over normal X forwarding?
- kragen 2y agox can't run untrusted applications; it trusts everything any x application can spy on everything you're doing in other windows, send them messages, inject other windows into them, delete them, and post ui events to them. basically with very few exceptions any x application has total control over your account xpra has other benefits (lower network bandwidth usage, being able to reconnect after network outages, being able to move an app from one display device to another) but that's not what the grandparent comment is talking about
- kragen 2y agoi assume you mean 'in virtual machines' rather than 'in the digital operating system almost, but not quite, entirely unlike unix'?
- jrm4 2y agoThis might be a good place to ask this: So, the idea of Firefox Sync is almost cool, but what I'd like is literally everything EXACTLY "synced," down to the current state of every tab. Something like this feels like it should do it, but I've tried this and other things, and it just didn't work all that seamlessly. Has anyone accomplished anything like this for browsers and use it regularly?
- organsnyder 2y agoSeems like a remote desktop solution is always going to be better at this—I'd imagine there's a long tail of weird website behavior trying to sync browser state. Or just carry a laptop.
- toenail 2y agoI rsync my entire firefox profile from workstation to workstation, sync sucks.
- jd3 2y agoI sync my entire firefox profile to multiple machines using syncthing https://tonsky.me/blog/syncthing/ https://tonsky.me/blog/syncthing/ https://syncthing.net/ https://syncthing.net/
- jrm4 2y agoThat's funny, I'm a heavy user of syncthing but never thought to try this. It doesn't get weird opening different executables on different machines?
- jd3 2y agoIt's been awhile since I've touched the config, but I think I ignore arch-specific executables using https://docs.syncthing.net/users/ignoring.html https://docs.syncthing.net/users/ignoring.html. I also haven't checked my Windows machine that it syncs with recently, so there might be issues on the latest ff etc etc. I started doing this with SeaMonkey, whose profile is simpler conceptually since it's still built on top of an old firefox legacy esr.
- nemoniac 2y agoAre there any security implications of running this over ssh?
- totaam 2y agoApart from the SSH connection? The short answer is (probably) very little, the long answer is more complicated: https://github.com/Xpra-org/xpra/blob/master/docs/Usage/Security.md https://github.com/Xpra-org/xpra/blob/master/docs/Usage/Secu...
- necheffa 2y agoThat depends on how you authenticate. If you pass your SSH password on the command line then anyone on your machine doing a `ps` at the right time could see your password. I find using a ssh-agent to load password protected SSH keys works best.
- JeremyNT 2y agoIf you're only working on Linux, you almost surely want waypipe [0] instead of xpra. If you need support for other platforms, though, xpra is still a pretty good solution. [0] https://gitlab.freedesktop.org/mstoeckl/waypipe https://gitlab.freedesktop.org/mstoeckl/waypipe
- amelius 2y agoUh, only if you want to use Wayland.
- simoncion 2y agoYep. Despite what Redhat would have folks believe, xorg works fine and will continue to work fine for the foreseeable future. Plus, if one wants things like functional screen readers, suitable-for-video-games Vulkan frame pacing [0], and many other things that you'd think would be table stakes for a project that's been running for at least 15 years, one's only choice on Linux is xorg. [0] The only reason the Steam Deck isn't a disaster is because Valve has been carrying a patch for a "Make frame pacing not garbage" extension that the Wayland people have been refusing to merge in for the past two+ years.
- p_l 2y agoSteamDeck uses gamescope which, outside of defaulting to provide XWayland as the actual API to applications, uses special Vulkan extension to essentially remove compositor from the pipeline other than things like performance overlay, making DXVK and others render as close to direct to scan out as possible.
- yjftsjthsd-h 2y agoXpra's headline feature is persistent remote applications; does waypipe let you disconnect and reconnect to applications?
- llmblockchain 2y agoI am running linux machines and I have one headless machine. I need to keep a browser running in that machine and occasionally check on it (see what it's doing, and possibly fix things in the browser). Would Xpra let me do that from a remote machine?
- necheffa 2y agoYes. With Xpra you have a headless X session on the remote machine and you "detach" and "attach" to it from the client. So whatever X applications you leave running will be right where you left them.
- paulirish 2y agoI use this instead of Chrome Remote Desktop and really appreciate the seamless window integration. It does, however, take some work to get it working smoothly.
- amelius 2y agoI use it to run software that is too new for my Linux distro inside a headless VM. Package management sucks, and this is my way to deal with it.