copy Shadowing

What is it?

Shadowing, also known as "cloning", is the ability to view, and optionally interact, with an existing session or local display.
Two users sitting at different computers can interact together with the same application, shown in two (or even more) places.
Sound can also be shadowed.

Session Shadowing

By default, NX and VNC virtual desktops can be shadowed without needing any extra tools installed. The option to start a copy will be shown on the session's control window.
Seamless applications cannot be shadowed at present.

Example

Although a warning is shown before allowing you to shadow your own display (as this is not particularly useful), it is also the easiest way to demonstrate the cloning process using a screenshot:
shadowing your own display

Shadowing an existing X11 display with Xpra

All you need is to have xpra installed both on the server and on the client. Shadowing requires version 0.8 or greater.

(if you are installing from our packages, these should have been pulled as dependencies automatically)

Shadowing an existing X11 display with NX

With NX, all you need is nxagent on the server and nxproxy on the client.

(if you are installing from our packages, these should have been pulled as dependencies automatically)

Shadowing an existing X11 display with VNC

With VNC, you need x11vnc on the server and a vncviewer on the client.
Note: x11vnc may also be known as x0vncserver or x0vnc4server on some platforms.

(It is less efficient than using the 'vnc.so' server module - but does not require you to make any changes to your local display configuration)

Shadowing an existing X11 display with GStreamer

You need gst-launch installed on both the client and the server.
Note: only Unix-like operating systems can shadow using GStreamer at present, that is because the screen scraping uses ximagesrc.

Session Control Window

Once setup properly, your local X11 sessions will be accessible as shown as in this example:
x11 shadow
Note: to be able to see the preview icon (a small snapshot of the display taken at regular intervals) you will need to install on the server:
  • xwd: used for capturing the screen
  • netpbm: used for scaling and converting the snapshot
The actual command used is set as screen_capture_command in your server.conf.

Troubleshooting

If for any reason this does not work as expected, please visit troubleshooting info.
There has been at least one report of problems with local displays not being detected, which should be solved by following bug 103.
The information you should be looking for in the server log (in debug mode) will be similar to:
LocalX11ServerUtil.do_detect_local_displays()
LocalX11ServerUtil.found_display(yourusername,:0,,1259350454)
LocalX11ServerUtil.get_local_display_owner(:0)=4ae18cd438fe11dfab60002564d3bffc
LocalX11ServerUtil.found_display(yourusername,:0,,1259350454) added X11 session 6aa6ae8a-a1ff-4212-80cb-5932de312804,
			owned by antoine, size=1920x1080, started 12269785.5479 seconds ago