Linked multiple desktops using Xinerama and Xdmx

It’s always trouble when you start out conversations with “You know, why can’t I just…”

15 minutes later, I did.

This screenshot is of a ‘virtual’ desktop. In reality, the display is being handled by 2 computers working together to drive 2 different screens. A single ‘proxy’ program called XDMX is managing the ‘single’ X display, and farming out the actual rendering of the pages to 2 different machines (yawl, my normal desktop machine, and ‘endor’, a server I bring with me to conventions.

By running Xdmx on ‘yawl‘, and telling it ‘endor’ was an available screen, and yawl itself was another one, Xdmx provided a ‘virtual’ desktop spread across multiple screens and computers. I can slide a window from one screen to another without noticing any change.

The biggest surprise came when KDE noticed the Xinerama-based desktop without question, and enabled features like “How do you want these multiple screens oriented” “Woudl you like the toolbar to extend across all your screens”, etc etc. Very pleasant!

In theory, Xdmx can handle any number of monitors in any configuration. I may put that to the test soon, but for now, having one extra large desktop is a fine place to start.

By the way, if you’re considering doing this on your own, I highly recommend this article on IBM developerworks. Very informative and helpful.


A wandering geek. Toys, shiny things, pursuits and distractions.

View all posts by

2 thoughts on “Linked multiple desktops using Xinerama and Xdmx

  1. Well, I’m not exactly sure! I’m assuming that aspect of the virtual desktop becomes unavailable – whether the other desktops resize to take that into account, I’m not sure.
    There’s problems with the RENDER extension in Xdmx, so I had to disable it. Unfortunately, that made normal interractions sort of sluggish, so I eventually went back to my single 1280×1024 desktop.
    I’d sure like to get a handful of these running at once though, just for chuckles.

Leave a Reply

Your email address will not be published. Required fields are marked *