Hacker News new | past | comments | ask | show | jobs | submit login
Xpra: Screen for X (xpra.org)
127 points by luu on Jan 15, 2014 | hide | past | favorite | 34 comments

I've used xpra for about a year now, and I do recommend it if it seems like it would fill a need in your workflow.

For me, I'm using it primarily as a way to run Pidgin (for Jabber and AIM, primarily) on my server that I can connect to from the various machines I use around the house; analogous to how I use irssi in screen for IRC.

I also configured my screen instance to have a DISPLAY environment variable that corresponds to my Xpra instance, so if I run anything within screen that connects to an X server, I can be sure it's connecting to the X server I'm currently connected to anyway, and I'm mostly safe from sudden disconnection problems.

I presume you're familiar with Finch (the console-based Pidgin equivalent - still uses libpurple), but I figured I'd mention it as another good way to get jabber/aim remotely.

Last time I tried this there was no support for anti-aliasing which was pretty much a non starter for me. Does anyone know if that has changed?

Not sure what you mean by that, can you clarify? The rendering on the server is done using a regular Xorg server, it will use whatever settings you choose. If you use an xpra lossless mode (or lossless with auto-refresh), then this is exactly what you'll get on the client. Now, if you mean sub-pixel hinting, that's a different story.

I might mean that. I tried it, thought it was just what I needed except that text looked horrible. I attributed it to lack of aliasing and some quick Googling indicated that it could not be fixed.

No, if text looked horrible then this is something else, more than likely you ended up with a sub-par encoding (probably vp8). h264 will normally run in high quality mode unless you are really struggling for bandwidth, and with lossless auto-refresh you won't even notice the occasional lossy compression. With default settings, text looks just fine - I use it everyday.

Has anyone used both xpra and x2go that could give a comparison?

Why would I use this over ssh -X?

The main problem with ssh -X is all your apps close when your connection drops. That is the main reason I always use screen or tmux -- I rarely actually use multiple screens, it just keeps my programs alive.

Here's my use case: I have multiple computers with an X server, but only one which actually has the graphical program(s) which I need to use. So, on the "main computer", I set the DISPLAY to Xpra's :15 instead of the usual :0, launch the program in `screen`, and off I go.

Now wherever I need to use the program(s), I only need to re-attach the Xpra session, and it shows up at the local display. This allows me to keep the same windows open, but I'm taking them with me, wherever I go. Also, the programs keep running when I close the connection (or when it drops), so I don't have to a) start them again, or b) restore state.

More Xpra goodness: allows me to change the compression and algorithm on-the-fly; is more responsible than SSH X forward on slow/laggy connections; has a "connection problem" visual indication (the windows are overlaid with a spinner, instead of just freezing).

Sounds like it's faster. And allows to reattach to a certain session.

Because xpra is faster.

Is anyone familiar with this? How does it compare with VNC or NX?

It's a rootles VNC, and has more compression options. Haven't gotten it to work with webp yet, but x264 works very well for me; I usually can't tell if it's local or remote.

This is different. This is forwarding on the application level, not the entire screen.

Isn't that what NX does as well?

Yes. If you're already using NX there's nothing to see here.

It may not matter to you, but xpra feels a lot more light-weight than NX. Installing/using xpra feels like tmux or ssh. NX feels like an enterprise software suite.

It definitely matters. I've always struggled with NX. VNC is easier, but slower.

NX has a "rootless" mode, and a "desktop" mode. xpra has only the "rootless" mode.

That's just not true anymore. You can get a desktop mode by running Xephir inside xpra.

Bah now we're into semantics, but say you're running xpra on display :1. Running an Xnest or Xephyr inside that can't re-use the :1 display. Further, you can run multiple Xnests/Xephyrs inside an xpra session.

I stand by my statement that xpra has only a "rootless" mode, but I will agree that with Xephyr (which is a less-sucky Xnest), there is less of a difference anymore.

How is this better than VirtualGL ? I frequently use vglconnect and vglrun to XForward OpenGL applications. Anyone know if this does anything better?

I'm not familiar with VirtualGL so correct me if I'm wrong, but it doesn't look like it supports reattaching to a still-running program after detaching or getting disconnected, which is the main purpose/advantage of xpra.

You could use this, to launch a remote browser or something, saw it in this article a while ago: http://blog.docker.io/2013/07/docker-desktop-your-desktop-ov...

FWIW, if that's all you want you can do it with plain old X11.

Yes, X11 itself can display over a network. But it's quite painful over an even somewhat slow link.

Depends what you're doing. I found it usable for many things more than a decade ago...

with no way to detach/reattach or deal with disconnection reasonably

While we're on the topic of X displayers, is there something like this or VNC for ChromeOS?

is there an html5 canvas client with this? displaying the X screen to the browser and taking inputs.

There is a proof of concept which you can try: https://www.xpra.org/trac/ticket/473

This is kind of what I'm working on in Gate One right now. Google "gate one x11" to see a video of the alpha.

Sounds like someone's volunteering to go write one

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact