X2Go Ephyr is a new kdrive X Server for X2Go. It could be used instead of x2goagent. X2Go Ephyr works similar to Xephyr and based on it's code. It won't replace x2goagent, users will be able to chose if they want to run their sessions in x2goagent or in X2Go Ephyr.
The main reason - we want to be able to run modern desktops such as Unity, KDE-5, Gnome-3 and the applications built with the latest toolkits without limitations.
x2goagent (or nxagent) is based on NX technologies. It's basically kind of X-proxy. It accepting X-protocol requests from X-Client and forwarding them to remote X-Server. In opposite, X2Go Ephyr is a real X-Server. It's processing the requests from X-Client and rendering images on the remote display, like normal X-Server rendering them into the graphic display, using the video driver. You could say, that the difference between x2goagent and X2Go Ephyr it's the same as difference between Xnest and Xephyr.
NX-Protocol using the network transparency of X-protocol. It mean's that instead of sending images over network, it sending the X-requests like “create window” or “move window from one position to another” or “write text in the window”. So if you running legacy X-applications, it'll work much faster on the slow networks, than protocols, which are transferring images between server and client.
Unlike the NX-libraries, which are based on obsolete X.Org-6, X2Go Ephyr is based on the recent X.Org-7. It brings multiply advantages:
If x2goagent is just a proxy between X-Servers on the server and client sides, X2Go Ephyr is a standalone X-Server. It brings a lot of advantages over NX-protocol:
X2Go Ephyr works similar to Xephyr with only difference, that it's not rendering frames in the X-window but transferring them instead over the network to xephyrclient. Xephyrclient running on the client computer, rendering the frames, capturing the input events and sending them back to the server.
xephyrclient and x2goephyr binaries are made to be compatible with nxproxy and x2goagent. You can just rename xephyrclient to nxproxy and x2goephyr to x2goagent and start the X2Go session using X2Go Client. It works only if X2Go Client is running on Linux. The versions of X2Go Client and X2Go Server, which can run parallel x2goagent and X2Go Ephyr sessions are coming soon.
Please keep in mind:
We don't have a binary builds yet. If you want to try it, you need to build it by yourself or wait until binary packages are ready.
Or just take a look at screenshots:
download the x2goephyr from git:
We assuming, that you are familiar with make, Xorg and know how to build software from sources.
You'll need a xorg-server sources (1.19.2), zlib, libpng and libjpeg.
Configure Xorg to build xephyr and start a build process (make). After that copy x2goephyr directories in
xorg-server/hw/kdrive, than change to
xorg-server/hw/kdrive/x2goephyr and run
make x2go. This should build x2goephyr binary.
The simplest way to build x2goephyr if you are using your system source packages. I'll give some examples for Debian, SLE12sp1 and OpenSUSE Leap 42.3
apt-build source xorg-server
patch -p1 < osuse_42.3.patchor
patch -p1 < sles12sp1.patch
To build xephyrclient you'll need QT-5.
qmake && make