====== FAQ ======
For those who want to find reasons for certain behavior of X2Go, read here: [[http://wiki.x2go.org/doku.php/wiki:development:debugging|How To Debug or Troubleshoot your X2Go installation]]
===== NX Protocol FAQ =====
==== Is X2Go compatible with NoMachine's NX or freeNX? ====
No. It is not possible to use NX client to log on to an X2Go server and vice versa.
X2Go does use the same libraries for graphics, keyboard/mouse input, and clipboard sharing. However, X2Go aims for an even greater integration into the Linux environment. Therefore, X2Go performs session handling in an incompatible manner.
X2Go also performs SSH authentication in a different manner than NoMachine does.
==== Can I install FreeNX and X2Go Server on one system? ====
Yes - the NX libraries of X2Go are actually the most recent stable versions of NXv3 libs available. They are versioned as 3.5.0.x and include the patchset developed by X2Go and [[https://github.com/ArcticaProject/nx-libs|others]]. NoMachine dropped the NXv3 development branch completely and NXv4 was released as closed source only. :-(
In former times the NX libs shipped with X2Go installed into an X2Go'ish location so that they would not interfere with the original NX libraries.
Nowadays the NX libs shipped with X2Go work as a replacement for the NXv3 that are not maintained by NoMachine anymore.
(This FAQ article has been written by Mike Gabriel and Mike DePaulo. If someone does not agree with the given information on NoMachine, please be so kind to contact us, so that we can discuss it and possibly correct errors in the given information).
==== Why are you using the terms "nx-libs" and "NX libraries"? X2Go clearly uses the 2 executables nxproxy & nxagent? ====
Basically:
- That is the term that was always used.
- Libraries are created also from the source package.
- Those libraries define the NX protocol.
Note that originally, "nx-libs" was not a single git repo. Instead, it was 7 separate tarballs:
- nxcomp
- nxcompext
- nxcompshad
- nxproxy
- nxagent
- nxauth
- nx-X11
Only the topmost three are libraries.
Having separate tarballs made maintenance more difficult, so they were combined into one as the X2Go project started redistributing them.
==== Why not just use X11 forwarding over SSH? This is what Keith Packard recommended. ====
You are probably referring to the [[http://keithp.com/~keithp/talks/lbxpost/|LBX post-mortem]]
It is true that X11 forwarding's performance can be improved by SSH's zlib compression and by the use of XCB rather than xlib.
However, nx-libs performs 3 additional performance improvements:
- nx-libs caches images, so that they do not have to be resent. For example, opening up your "start menu" is very fast the 2nd and 3rd time that you do so.
- zlib is generic lossless compression, so it is not well-suited for images. nx-libs achieves better performance by using compression methods such as JPEG (default, lossy) or PNG (lossless.)
- XCB applications are still partially hindered by round-trips, and nx-libs eliminates more of those round-trips. See [[https://lwn.net/Articles/343506/|Bart Massey's explanation]] for more info.
The topmost two performance improvements also reduce bandwidth usage, which has the effect of improving performance when other users are sharing the same WAN link.
==== Why Am I told to enable X11 forwarding with X2Go? I thought that X2Go uses nx-libs instead of X11 forwarding! ====
The simple answer is that the OpenSSH server treats the connection differently (in such a way that degrades nx-libs performance) unless X11 forwarding is enabled.
[[https://www.nomachine.com/AR05D00391|See NoMachine's explanation for more info.]]
==== What is the difference to LTSP? Why a free thin client environment? ====
LTSP requires a high bandwidth on your network. It can efficiently be used in Local Area Networks (LANs) only.
However, X2Go is not a mere solution for local area networks, but it also allows for the integration of a mobile network into the system. Nomachine’s NX libraries - used by X2Go - enable the transport of whole desktop sessions over a narrow bandwidth connection through the internet.
Further bonuses of X2Go are that you can pause a desktop session and take it to a different thin client for further use.
==== Does X2Go support compositors? ====
No, X2Go doesn't support X11 screen compositors. The compositors will be disabled.
===== Server FAQ =====
==== What are the packages x2goserver-home and x2goserver-one for? ====
Both packages (''x2goserver-home'', ''x2goserver-one'') are obsolete as of April 2011. They have been removed from the current .deb repositories and they should not be used anymore (in fact they break your system). On .deb based system they will automatically be uninstalled with an update of the ''x2goserver'' package.
X2go Server currently does neither have any group membership restrictions any more as former versions had. This may well be re-introduced, though, if someone picks up work on that.
The obsolete ''x2goserver-home'' package added all known users on the server system to the group ''x2gousers'' which made some people nervous when testing X2Go on production systems. For this reason we have dropped the auto-adding of users to groups in Apr 2011.
==== Do I need a PostgreSQL database to run X2Go Server? ====
No. The PostgreSQL database is only needed if you are planing to use more than one connected server (server array). By default X2Go Server installs with SQLite3 support enabled. To set up X2Go with PostgreSQL as the DB backend you have to edit X2Go Server's configuration in /etc/x2go.
==== Is there an X2Go server daemon/service that needs to be started? ====
Strictly speaking, the only daemon/service that needs to be running is the SSH daemon. If users can connect to your server via an SSH client, then they should be able to connect via X2Go Client or PyHoca-GUI/PyHoca-CLI.
Depending on your Linux distribution, there may be an X2Go server init script called ''x2goserver'' or a systemd service called ''x2gocleansessions.service''. It is highly recommended that this service be enabled. It handles session cleanup, but does **not** provide X2Go "login functionality". You must not assume that the service is running correctly if logins via any of the X2Go client applications are possible. It is also ***not*** a prerequisite for new X2Go sessions.
==== Does X2Go support Wayland or Mir? ====
So long as X2Go uses the NX protocol exclusively for remote display and keyboard/pointer input, X2Go cannot support Wayland or Mir. Audio and file/printer sharing are handled by separate protocols. This is because NX works with the X11 protocol, rather than using an entirely separate protocol like SPICE and VNC do. NX improves X11 performance by caching the X11 traffic, compressing it, and eliminating the X11 "round-trips".
===== Client FAQ =====
==== You have 3 clients. Which client should I use? ====
If in doubt, pick the regular X2Go Client (x2goclient). It is the most widely used and tested.
* The regular X2Go Client (x2goclient) is optimized for thin client & single-session usage, but can be used on any desktop/laptop computer.
* PyHoca-GUi is optimized for users who want to connect to multiple sessions at once, and already know how to use X2Go. For example, a sysadmin administrating multiple servers.
* PyHoca-CLI is launched via command-line args; similar to vncviewer or rdesktop/xfreerdp. It is also suitable for connecting to multiple sessions at once.
==== Is there an MS Windows Client? ====
Yes, there are two: [[doc:installation:x2goclient#ms_windows|X2Go Client]] and [[doc:installation:pyhoca-gui#ms_windows|PyHoca-GUI]].
==== Is there an OS X Client? ====
[[doc:installation:x2goclient#os_x|Yes!]]
==== Why is there no sound using Linux? ====
Assuming PulseAudio daemon is up and running. Probably because the PulseAudio server does not listen to client connections. Check whether the file ''/etc/pulse/default.pa'' on the client contains the line:
load-module module-native-protocol-tcp auth-cookie=".pulse-cookie"
If not, add it. Alternatively you can load the module at runtime:
pactl load-module module-native-protocol-tcp 'auth-cookie=".pulse-cookie"'
==== Can I use x2goprint with Windows Clients? ====
To set a print target, you'll need ''x2goclient''. For example you can use the RDP tunneling feature of X2Go. FIXME
===== Session FAQ =====
==== How do I change the keyboard layout? ====
Although some tools (e.g. Gnome Keyboard Indicator) might have trouble changing the layout, you should be able to change the keyboard layout using ''setxkbmap''.
setxkbmap de
setxkbmap us
==== Ubuntu's and Fedora's KDE won't resize the desktop to the window size requested by X2Go Client. How can I fix this? ====
This happens because of a package called ''kscreen''. You might encounter an X2Go session trying to launch KDE and this KDE session not resizing properly to your client-side screen or session window size.
In general, this is not a bug. Using two applications - ''kscreen'' and X2Go client applications' resizing features - that handle display resolution is not supported, as it can lead to many unexpected situations and race conditions.
On machines that act as an X2Go Server only, it may make sense to remove the ''kscreen'' package completely. This, however, may have a negative effect on your X2Go server's plug'n'play capabilities. The ''kscreen'' package handles hotplugging of display hardware. Hence, if your X2Go Server machine is also used as a physical desktop machine, consider well, if it is OK to remove that package or not.
For X2Go we suggest disabling the KScreen KDED module in the user's profile, since X2Go handles resolution switches for you:
System Settings -> Startup and Shutdown -> Service Manager, uncheck "KScreen 2"
To manually change output settings (rotation, enabling/disabling outputs etc) use the KScreen KCM.
==== How do I customize font sizes in X2Go sessions? ====
Some people have asked for font size customizations in X2Go session windows. Please use the DPI value in the session setup to customize font sizes within your X2Go sessions:
* 70 DPI -> quite readable fonts
* 90 DPI -> the default font size
* 120 DPI -> miniature font size
==== File and folder sharing has stopped working since Apr 2011 (approx.). Why? What can I do about it? ====
Add users that shall be granted X2Go file and folder sharing functionality to the ''fuse'' group on your system (openSUSE/SLES users: to the ''trusted'' group). Example for user ''foo'':
$ sudo gpasswd -a foo fuse
# if on SUSE + derivatives
$ sudo gpasswd -a foo trusted
==== How to run multiple Firefox in different sessions in paralell? ====
This KB article shows one solution for this:
[[http://kb.mozillazine.org/Firefox_:_FAQs_:_Run_more_than_one_instance_in_Linux| kb.mozillazine.org/Firefox_:_FAQs_:_Run_more_than_one_instance_in_Linux]]
===== Known Issues =====
==== Can't login to x2goserver with an ECDSA key ====
Currently, older versions of the ssh library used by X2Go called ''libssh'' are unable to work with ECDSA keys.
However you may use an RSA key - if you need to - or go with the SSH default authenticating method using the remote user's password.
==== SSH Login issue ====
If you already use OpenSSH to get a shell on your x2go server, you may get this message when trying to connect with x2go:
The host key for
this server was not found but an othertype of key exists. An attacker
might change the default server key to confuse your client into thinking
the key does not exist
This is related to the ECDSA host key (related to the previous FAQ entry - although there is a subtle difference between host and client keys.)
To solve this issue, you can disable ECDSA keys on your OpenSSH server configuration, by commenting the following line in /etc/ssh/sshd_config file:
#HostKey /etc/ssh/ssh_host_ecdsa_key
Then restart the SSH service.
Now you should not get the error message anymore.
===== 3rd Party Software Known Issues =====
==== Eclipse/DartEditor crashes on Debian Wheezy ====
Eclipse and DartEditor crash on Debian Wheezy due to the ''cairo'' library, as explained on http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=721181.
The bug report and its links explain how to work around this problem by updating to the cairo library from Jessie, or modifying a line in the /usr/bin/eclipse launcher script, changing the last line:
exec $ECLIPSE "$@"
to:
exec $ECLIPSE -vmargs -Dorg.eclipse.swt.internal.gtk.cairoGraphics=false "$@"
==== LibreOffice performance ====
If when using LibreOffice, text selections and copy/paste operations spike your CPU usage, disable anti-aliasing and selection transparency in the LibreOffice options.
==== Mate and numlock erratic behavior ====
If using Mate DE, your numlock key makes numeric keyboard act in a numeric manner or as a movement keys, disable the dconf setting with:
gsettings set org.mate.peripherals-keyboard remember-numlock-state false
Another interesting setting is:
gsettings set org.mate.peripherals-keyboard numlock-state 'on'
Lastly, you can tell X to always use numeric pad as digits, on keyboard options.
==== R graphics ====
Using an buffered X-window and reducing the update rate can significantly improve performance for complex graphs.
#Only update Window every 5 seconds (you have to play with this value)
options(X11updates = 5)
#Open a new X-Window with buffered window
X11(type = "dbcairo");
#Everything following this line will be drawn into this window.
===== Desktop Environment FAQ (Gnome, KDE, etc.) =====
Please visit [[doc:de-compat]] to find out which Desktop Environments are supported on the X2Go Server side.