I am a long time Linux user of the Xinerama and other technologies for extending a desktop to multiple monitors. However when I travel with my laptop I miss the multi-monitor support I enjoy at home. Recently I acquired a second laptop for a low price. Both laptops are running Fedora (versions 10 and 11 respectively). I use Gnome as my primary desktop environment.

I know about synergy. I use synergy all the time to control the screen of other Windows / Linux systems I use.

I would like to know, can I sit both my primary and secondary laptops together and achieve a Xinerama-like extended desktop environment? Ideally I would like to start a GNOME session on my primary laptop. And then start a X-Windows Desktop on my secondary laptop and extend my primary laptop's desktop onto it. I would like to be able to move Windows from the primary desktop to the secondary laptop desktop.

Would I need to use synergy to do this with some other bit of X-Windows technology? Or is there X-Windows technology that will do all this for me?

I am familiar with X Windows ability to display applications remotely. I am also familiar with Nomachine's NoX.


I think you are looking for http://dmx.sourceforge.net/ . From the man page:

It provides multi-head X functionality for displays that might be located on different machines.

  • Great! Great! Great!
    – kolypto
    Nov 18 '09 at 0:52
  • -1 The other is greater! Greater! Greater! Aug 28 '12 at 18:02

Start the X server with the -ac option, in all Linux box that you want to make the wall, like:

X -ac

Then execute startx, with Xdmx with xinerama enabled, sending the display to the server, as:

startx -- /usr/bin/Xdmx :0 +xinerama -display -display -display -norender -noglxproxy

Virtual Monitor Over VNC

With this solution you can use any OS that is able to connect via VNC to your Ubuntu machine like a second screen. This is done by using x11vnc, the following is derived from the VNC Virtual Display Linker python code. I had a couple of issues with this code but I managed to get it working as shown below.

Simplified Intructions:

Please be aware of the notes and considerations at the end of this answer.

  1. Definitions: The "server" will be the computer which screen you want to extend, the "client" will be the computer (or tablet, any device able to deploy a VNC client) that you want to use as a screen.
  2. Required Software: On the server install x11vnc and gtf, on the client install a vnc client.
  3. You need to know client's screen size (we'll call them: CLIENT_WIDTH, CLIENT_HEIGHT) and the servers' screen size (we'll call them: SERVER_WIDTH, SERVER_HEIGHT).
  4. In the server, run in a terminal gtf CLIENT_WIDTH CLIENT_HEIGHT 60 (replace the CLIENT_WIDTH and CLIENT_HEIGHT with the corresponding values). As an example for gtf CLIENT_WIDTH CLIENT_HEIGHT 60 is
# 1384x768 @ 60.00 Hz (GTF) hsync: 47.70 kHz; pclk: 86.62 MHz
Modeline "1384x768_60.00"  86.62  1384 1456 1600 1816  768 769 772 795  -HSync +Vsync
  1. From the previous result copy what is in front of Modeline, (in this case "1384x768_60.00" 86.62 1384 1456 1600 1816 768 769 772 795 -HSync +Vsync) and use that as a parameter to xrandr --newmode command. For example, in this case, we'll have to run in the server xrandr --newmode "1368x768_60.00" 85.86 1368 1440 1584 1800 768 769 772 795 -HSync +Vsync
  2. In 5 we've created a newmode in xrandr, now we need to add it to the virtual screen, as follows xrandr --addmode VIRTUAL1 "1368x768_60.00" (please remember to use your own newly created mode name, which is the value including quotes in 5).
  3. Run x11vnc -usepw -nocursorshape -nocursorpos -noxinerama -solid -repeat -forever -clip CLIENT_WIDTHxCLIENT_HEIGHT+SERVER_WIDTH+0. As an example: x11vnc -usepw -nocursorshape -nocursorpos -noxinerama -solid -repeat -forever -clip 1368x768+1920+0. This will create a VNC server in port 5900 you can connect to.
  4. Lastly, connect to the server from you other computer (or any VNC client, recommended krdc for linux machines). You should be able to enjoy your extended screen now.

Notes and considerations:

  • In step 8, with krdc, it is recommended to use the "Medium Quality" option, even if you are on cable: both the "Low" and "High" quality options produce errors.
  • I tried this over a WiFi network and it works properly, however on cable it's smoother.
  • I had problems when starting the VNC server in step 7, the screen started to flicker and I couldn't see what I was doing on the screen. To fix this, I connected via the VNC server (the extended screen already works at this point), opened the Displays tool (the one that comes with the system where you can see the displays that are connected) and Unify Outputs then Break Unified Outputs (an example of this option in Kubuntu is shown below). Then everything worked.

Unify Outputs

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy