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.
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.
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).
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.
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.
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.
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.
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.