Desktop sharing and session shadowing was implemented in NX 3.0.0.
This was one of the most requested features by customers and opens up NX to a full range of different usage scenarios, like remote help-desk activity and collaborative brainstorming.
In the past there have been attempts to use the X11 protocol for this purpose but no one had ever reached a stage that proved to be usable. The main reason was that the involved "proxies" lacked the knowledge of the X protocol required to implement this in a reliable way. With NX it is different.
nxagent is a fully-featured X server and knows everything it needs to know to forward a single X connection to multiple X servers on the remote clients. More technical details on nxagent running in shadow mode are available here:
What is the difference between desktop sharing and session shadowing?
NX 3.0.0 offers the possibility to connect either to a local desktop (desktop sharing of the local native display), i.e.the X server running on the NX Node host machine, or to a NX session, named the master session, running on the NX Node host machine (session shadowing). This kind of session, named shadow in both desktop sharing and session shadowing, can be requested by setting Desktop -> Shadow in the NX Client GUI-> General tab. Upon the request of the end user, the server provides to the client the list of available sessions. The user, via the NX Available sessions GUI, can then choose to which session he/she would like to attach to.
What happens when the user requests to attach a master session?
In the default configuration of the server, the owner of the master session will be issued with a dialog to authorize that session to be shared. If the owner doesn't accept or deny within 1 minute, the node issues a timeout and the end-user requesting to attach the session is notified, so that he/she can retry later.
How should I configure the client to attach to a suspended session?
Enter the General tab of the configuration box and select 'Shadow' under the area 'Desktop'.
How should I configure the server to attach to a suspended session?
The EnableSessionShadowing key must be enabled in the /usr/NX/etc/server.cfg configuration file:
EnableSessionShadowing = "1"
How should I configure the server to attach to a suspended session without authorization?
In order to attach to a suspended session, you need to configure the server to not require the owner's authorization to do so. To do this, edit the /usr/NX/etc/server.cfg file and set:
EnableSessionShadowingAuthorization = "0"
to NOT have a dialog pop up for authorization.
What happens when the user requests to attach a local display?
By default, if the owner of the local display is an NX user (i.e. he/she is listed in the NX User DB), NX Server issues a dialog to the owner to accept /deny the request to attach . If the owner doesn't authorize or deny the request within 1 minute, a timeout is issued, as in the case of session shadowing.
How should I configure the server to attach to the local display ( Desktop Sharing)?
The NX user can connect to a native desktop owned by an NX user. The EnableDesktopSharing key must be enabled in the /usr/NX/etc/server.cfg configuration file:
What should I do if I want to share a X server not owned by a NX user?
You can do any of the following, according to your needs:
1. Add the owner of the local desktop to the NX User DB by running the following command on the server:
# nxserver --useradd username
Please note that attaching to native display owned by NX user is possible only if NX Node and NX Server resides on the same host machine.
2. Enable attaching to local sessions not owned by NX users by editing the /usr/NX/etc/server.cfg file and setting:
EnableFullDesktopSharing = "1"
3. If you want to allow the attaching to a local display owned by root, you need to set the following keys in the server configuration file:
EnableFullDesktopSharing = "1"
EnableAdministratorDesktopSharing = "1"
And if I want to attach a local display without the need of requesting the owner's authorization?
You need to set the follwoing key in the /usr/NX/etc/server.cfg file:
EnableDesktopSharingAuthorization = "0"
Furthermore, if you need to attach to a native display owned by root, without the need of any authorization from the owner, you need also to set:
EnableSystemDesktopSharingAuthorization = "0"
Can I configure the server to have shadow session in view only mode?
Yes. By default, the server allows the attaching to either a master or a native session in interactive mode. In order to enable the view-only mode, you have to set the following keys:
EnableInteractiveSessionShadowing = "0" EnableInteractiveDesktopSharing = "0"
What is the NX Shadow Monitor?
When the user attaches to any of the available sessions, either in case of desktop sharing or session shadowing, an NX Client application, named NX Shadow Monitor is run. It appears at the bottom of the NX Window and clicking on it will trigger a pop-up to appear in the top right-hand corner. This application is aimed at listing in real-time all the users that are attached to the session and allows the owner of the session to send a message to the selected user, or to disconnect him/her. The owner of the session will be able to click on the user they wish to send a message to, or suspend/terminate that user shadowing the session.